每当我尝试在C#程序中设置/更改标签的值时,都需要帮助,发生错误,提示我需要对所有线程进行交叉处理。任何人都可以编写一些代码来帮助我吗?
我的代码是:

int number = 0;
int repeats = Convert.ToInt32(textBox2.Text);

while (number < repeats)
{
   repeats++;
   label5.Text = "Requested" + repeats + "Times";
}

谁能帮我?
谢谢。

最佳答案

尝试以下操作来更新值

label5.Invoke((MethodInvoker)(() => label5.Text = "Requested" + repeats + "Times"));

Invoke方法(来自Control.Invoke)将使传入的委托(delegate)在给定Control所关联的线程上运行。在这种情况下,它将导致它在您的应用程序的GUI线程上运行,从而使更新安全。

关于c# - 使用C#交叉线程设置标签的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2172467/

10-12 07:18