gpt4 book ai didi

c# - 在后台工作线程中访问主线程控制

转载 作者:行者123 更新时间:2023-12-03 13:16:05 24 4
gpt4 key购买 nike

我有一个函数 ShowPanel(Control ctrl) 需要将 Control 作为参数传递。我需要在后台工作线程中调用这个函数。我使用以下代码

void bw_DoWork(object sender,DoWorkEventArgs e)
{
ShowPanel(listBox1);
}

但因执行失败

Cross-thread operation not valid: Control 'Form1' accessed from a thread other than the thread it was created on

如何在后台线程中传递 listBox1

最佳答案

序列化调用,因为您无法访问在不同线程上创建的控件,您需要使用以下方法序列化调用

 void bw_DoWork(object sender,DoWorkEventArgs e)
{
this.Invoke(new MethodInvoker(delegate {

ShowPanel(listBox1);
}));
}

关于c# - 在后台工作线程中访问主线程控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19152845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com