跨線程更改窗體的屬性

在一個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();



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章