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

   

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

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

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

    我这里有个简单办法。

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

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

                    yourControl.Invoke(new ThreadStart(delegate(){
                    yourControl.Text = str;  ==注意,这个str就是Form1主线程中的变量    
                }));  

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

posted on 2012-01-19 15:27  Mayvar  阅读(3799)  评论(11编辑  收藏  举报

导航