示例#1
0
        public void Run()
        {
            // 在這裡開始進行執行緒所要處理的工作
            int sum = 0;

            for (int i = 0; i < 傳遞的參數1; i++)
            {
                for (int j = 0; j < 傳遞的參數2; j++)
                {
                    sum += j;
                }
            }
            Thread.Sleep(2000); // 表示接下來的工作,需要花費 2 秒鐘

            if (On執行緒完成 != null)
            {
                // 定義要回報的工作結果,並且將計算結果回報回去
                執行完成後回報結果Args foo執行完成後回報結果Args = new 執行完成後回報結果Args
                {
                    計算結果 = sum,
                };
                // 執行 執行緒 執行完成後,需要委派的方法,也回報執行結果
                On執行緒完成(this, foo執行完成後回報結果Args);
            }
        }
示例#2
0
        static void 執行緒完成事件方法(object sender, EventArgs e)
        {
            #region 取得執行緒計算完成結果
            執行完成後回報結果Args foo執行完成後回報結果Args = e as 執行完成後回報結果Args;
            Console.WriteLine("執行緒計算結果為{0}", foo執行完成後回報結果Args.計算結果);
            #endregion

            if (_count == 1)
            {
                ThreadWorker worker = new ThreadWorker();
                // 設定要傳入執行緒內的兩個參數
                worker.傳遞的參數1 = 5;
                worker.傳遞的參數2 = 1200;
                // 設定執行緒完成後,需要委派執行的方法
                worker.On執行緒完成 += 執行緒完成事件方法;

                Console.WriteLine("產生第二個新的執行緒,並且開始執行該執行緒");
                // 產生第二個新的執行緒,並且開始執行該執行緒
                Thread thread2 = new Thread(worker.Run);
                thread2.Start();

                _count++;
            }
        }