【发布时间】:2011-11-05 16:53:50
【问题描述】:
我正在使用线程池进行一些测试,如何更改表单中的 Textbox.text?
ThreadPool.SetMaxThreads(3, 3);
for(int i2 = 0; i2 < 100; i2++)
{
ThreadPool.QueueUserWorkItem(myInt, i2);
}
void myInt(object obj23)
{
int value = (int)obj23;
writeTo(value);
// code to write textbox1.text += value + "\n";
Thread.Sleep(10000);
}
错误是因为没有创建对象(textbox1)的线程正在尝试更改它
【问题讨论】:
-
搜索 InvokeRequired -- 你会发现一堆提示
-
该错误看起来像 WPF 错误,而不是 winforms 错误。这是 WPF 吗?
-
鉴于控件只能从创建它们的线程更新,此代码有 0.0% 的意义。追求它没有意义。
标签: c# multithreading