今天很簡單的教大家在Windows Form 建立執行序
從執行序的開始到結束
首先,我們建立一個class MyThread
這個物件在new 的時候,就會將執行序啟動了。
public class MyThread
{
//關閉執行序
public bool bClose = false;
//關閉執行序完成
public bool bCloseFinish = false;
//執行序物件
public Thread thread = null;
//建構子
public MyThread()
{
thread = new Thread(Execute);
thread.Start();
}
//執行序做的事情
private void Execute()
{
while (true)
{
Thread.Sleep(1);
if (bClose) break;
}
bCloseFinish = true;
}
}
當我們在Form中使用自訂義的執行序物件
必須去將執行序停止,否則會造成程式關閉的錯誤,甚至在背景執行無法關閉。
因此在程式關閉時去將執行序結束。
public partial class Form1 : Form
{
//建立自訂義執行序物件
public MyThread MyThread = null;
//建構子
public Form1()
{
InitializeComponent();
MyThread = new MyThread();
}
//關閉視窗
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//結束執行序
MyThread.bClose = true;
//等待執行序結束
while (!MyThread.bCloseFinish) Application.DoEvents();
}
}
若有執行序同步(Synchronize)的問題,請參考這篇: Thread in C# Windows Form
留言列表