在一個winform程序中可能會啓動一個線程去對進行窗體變化
這就關係到跨線程調用資源的問題,
有兩個解決辦法:
第一個辦法:
在構造函數裏面添加(雖然簡單,但是不安全,不推薦使用)
Control.CheckForIllegalCrossThreadCalls = false;
第二個方法,使用委託的方法
用到了兩個lamda表達式。
Thread th = new Thread(() => {
while (true)
{
lab1.Invoke(new MethodInvoker(() => {
lab1.Text = DateTime.Now.ToString();
}));
}
});
th.IsBackground = true;
th.Start();