gpt4 book ai didi

c# - 在线程程序中什么时候使用Invoke?

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:46 24 4
gpt4 key购买 nike

示例代码:

private  void button1_Click(object sender, EventArgs e)
{
Thread r= new Thread(new ThreadStart(DoWork));
r.Start();
}

private void DoWork()
{
MessageBox.Show("test");
Thread.Sleep(2000);
}

开发人员何时会用以下代码替换 MessageBox 代码:

this.Invoke(new Action(() => { MessageBox.Show(this, "test"); }));

最佳答案

当您需要在 UI 线程上执行操作时,您可以使用 this.Invoke

例如,如果您要更新一个 UI 元素,则需要在主 UI 线程上执行。

否则你会得到如下异常:

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

在您的示例中,显然不需要使用 Invoke

关于c# - 在线程程序中什么时候使用Invoke?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30022620/

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