就一定會遇到多工的需求
而讓程式同時做很多事情的其中一個方法
就是使用執行緒(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的管理
不然可是會造成許多程式異常的情況
沒有留言:
張貼留言