我有一个带有按钮的窗体。我有2个线程,我想从另一个线程更改按钮名称。当我这样做时,我收到一个错误。 如何更改按钮名称?
P.S。我知道alredy发布了同样的问题,但那里的解决方案无法帮助我。我不能使用Dispatcher
,也许是因为我使用.NET 2.0(我必须......)。
答案 0 :(得分:1)
delegate void MyDelegate(string x);
void ChangeName(string name)
{
if (this.InvokeRequired)
{
this.Invoke(new MyDelegate(this.ChangeName), new object[]{name});
return;
}
this.button.Text = name;
}
答案 1 :(得分:0)
你需要看看:
InvokeRequired and
Invoke
实际控制方法。 InvokeRequired将告诉您是否需要通过调用来执行此操作(即,它是从不是UIThread的线程调用的),并且调用将执行操作。
它与Dispatcher没有什么不同,除了责任落在控件本身而不是其他类。