C# 跨线程赋值的简单做法

通常,C#是不许跨线程赋值的,如:Form1中有个textbox, 若开辟一个新的线程来给

这个textbox赋值时,会出现异常。

MSDN中提出了具体的做法,较为繁琐,就不说了。

我这里有个简单办法。

大多数能赋值的控件都有invoke 方法,invode方法中不是要一个Delegate型参数么,

那简单,可以随便找个.NET自定义的Delegate,如ThreadStart就行了,因此都可以这样做:

yourControl.Invoke(new ThreadStart(delegate(){

yourControl.Text = str; ==注意,这个str就是Form1主线程中的变量

}));

简单吧,,你就再无需定义委托了,也不用写额外的方法等繁琐的事情了。