宇宙仮面の
C# Programming

 
Image

スレッド処理

開発環境: Visual Studio 2003 

目次

  1. 目次
  2. 目的
  3. 参考書
  4. ソースコード
  5. 実行結果
  6. 改定記録

目的

スレッド処理です。

Windows.Formsを利用する場合は、非同期パターンが使えないか検討すべし。

参考書

(1) MSDN System.TimeZoneクラス

ソースコード

using System;
using System.Threading;

public class Simple
{
        public class MyThread
        {
                // Threadは sealed classなので、継承できない。
                // このため、Threadのdelegateにより呼び出す。
                private int number;
                public MyThread( int no )
                {
                        number = no;
                }

                public void Run()
                {
                        while (true)
                        {
                                Console.WriteLine("Thread Sleep = {0}", number);
                                Thread.Sleep(number);
                        }
                }
        }

        public static void Main()
        {
                // ThreadからたたかれるMyThreadインスタンスを作る。
                MyThread myThread1 = new MyThread(500);
                MyThread myThread2 = new MyThread(1000);

                // delegate により ThreadStart であるMyThread.Run メソッドを Threadオブジェクトに引き渡す。
                // Thread.Start()が呼ばれた時点で、delegateされた MyThread.Runが呼ばれる。
                Thread thread1 = new Thread(new ThreadStart(myThread1.Run));
                Thread thread2 = new Thread(new ThreadStart(myThread2.Run));

                thread1.Start();
                thread2.Start();

                Thread.Sleep(5000);

      
                thread1.Abort();
                thread2.Abort();
      
                thread1.Join();
                thread2.Join();
      
                Console.WriteLine();
                Console.WriteLine("MyThread.Run has finished");
        }
}

実行結果

Image

改定記録

 
日付コメント
2004/5/23全体デザイン再構成
2002/3/4初版作成