通常,C#是不許跨線程賦值的,如:Form1中有個textbox, 若開辟一個新的線程來給
這個textbox賦值時,會出現異常。
MSDN中提出了具體的做法,較為繁瑣,就不說了。
我這里有個簡單辦法。
大多數能賦值的控件都有invoke 方法,invode方法中不是要一個Delegate型參數么,
那簡單,可以隨便找個.NET自定義的Delegate,如ThreadStart就行了,因此都可以這樣做:
yourControl.Invoke(new ThreadStart(delegate(){
yourControl.Text = str; ==注意,這個str就是Form1主線程中的變量
}));
簡單吧,,你就再無需定義委托了,也不用寫額外的方法等繁瑣的事情了。