close

今天很簡單的教大家在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

 

arrow
arrow
    全站熱搜

    史克威爾凱特 發表在 痞客邦 留言(0) 人氣()