用線程寫一個簡單的DEMO:在一個WinForm中放一個命名爲lblNumber的Label控件,每隔一秒刷新一下Label的Text,讓它顯示當前的秒數,從0顯示到99。c#
若是用Timer那麼拖來兩個控件,敲幾行代碼,2分鐘搞定。這裏主要是作Demo說明匿名方法的用法,所以稍微麻煩一些:ui
private void MainForm_Load(object sender, EventArgs e) { Thread t = new Thread(() => { for (int i = 0; i < 100;i++ ) { SetLableText(i); Thread.Sleep(1000); } }); t.Start(); } private void SetLableText(int num) { if (lblNumber.InvokeRequired) { lblNumber.Invoke((MethodInvoker)(() => { SetLableText(num); })); } else { lblNumber.Text = num.ToString(); } }
建立線程使用了匿名方法 ()=>{}; 給Label的Text賦值涉及到跨線程調用控件問題,必須使用委託,因此用了一個Invoke線程