マルチスレッドで処理を行う

C#

[この記事は17年前に書かれました]

マルチスレッドで処理を行うには、Threadクラス、ThreadStartデリゲートを使用します。


ThreadStartには、マルチスレッドで処理を行わせたいメソッドを指定します。 作成したスレッドにパラメータを渡したい場合は、ParameterizedThreadStartデリゲートを使用します。

using System.Threading;

class Param
{
  public int a;
  public int b;
}

class Program
{  
  static void Main(string[] args)
  {
    // Method1を別スレッドで実行
    Thread thread1 = new Thread(new ThreadStart(Method1));
    thread1.Start();

    Param p = new Param();
    p.a = 1;
    p.b = 2;

    // Method2を別スレッドで実行(パラメータ渡し)
    Thread thread2 = new Thread(new ParameterizedThreadStart(Method2));
    thread2.Start(p);
  }

  public static void Method1()
  {
    Console.WriteLine("test");
  }

  public static void Method2(object o)
  {
    Param p = (Param)o;
    Console.WriteLine("Param:" + p.a + "," + p.b);
  }
}

出力:test Param:1,2
(※).NET Framework version 2.0新機能

コメント

タイトルとURLをコピーしました