就一定會遇到多工的需求
而讓程式同時做很多事情的其中一個方法
就是使用執行緒(Thread)
這篇就來說明一下Thread的基本
首先,要使用Thread必須先在.cs檔加上using
using Threading;
接下來就可以在任何地方宣告Thread並啟動它
Thread sample = new Thread(_ThreadFunction); sample.Start();在上面這個範例中的_ThreadFunction是你用Thread方式去執行的Function名稱
內容可能像這樣
private void _ThreadFunction() { int count = 0; while(count < 100) { count++; Thread.Sleep(100); } }這個Function的內容就是很簡單的把count加到100然後結束
如果想要強制結束Thread可以使用Abort方法
sample.Abort();
另外要結束Thread的話建議先判斷一下Thread還有沒有在跑
if(sample.IsAlive) { sample.Abort(); }
整理一下上面的範例後完整的程式碼大概會長這樣
using System; using System.Windows.Forms; using System.Threading; namespace ThreadSample { public partial class Form1 : Form { Thread sample; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { sample = new Thread(_ThreadFunction); sample.Start(); } private void _ThreadFunction() { int count = 0; while(count < 100) { count++; Thread.Sleep(100); } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if(sample.IsAlive) { sample.Abort(); } } } }這個完整的程式碼最後的部分是在發生FormClosing事件時(就是視窗關閉時)檢查Thread是否還在執行
如果Thread還在執行則強制關閉視窗
這段程式碼如果沒有寫的話,就會發生你覺得程式已經關閉,但是其實它還是繼續在記憶體裡面跑的問題
所以在用Thread的時候一定要注意Thread的管理
不然可是會造成許多程式異常的情況