[C#] ParameterizedThreadStart を利用して Thread のメソッドに引数を渡す

2011-8-25 19:23
このエントリーをはてなブックマークに追加

C# ではスレッドの呼び出しを以下のようにして行ないます。

  thread = new Thread(new ThreadStart(HogeFunc));
  thread.Start();
……

  function void HogeFunc()
  {
   //スレッドで実行したい処理
  ……
  }

ここで、スレッドで呼び出すメソッドに引数を与えるときには、どうすればよいでしょうか。.NET 2.0 からはこの方法が用意されています。

//スレッドに渡す引数オブジェクト (ここでは Stringの配列にしているが何でも良い)
String[] param = {"あああ", "123", null};
ParameterizedThreadStart ts = new ParameterizedThreadStart(HogeFinc);
Thread thread = new Thread(ts);
Thread.start(param);
……
  function void HogeFunc(Object obj)
  {
  String[] param = (String[])obj;
   //スレッドで実行したい処理
  ……
  }

ParameterizedThreadStart を利用して Thread オブジェクトを作成することで、thread の Start に渡した引数を分けとることができます。引数は object 型として渡ってくるので、呼び出されたメソッド側で、本来の型にキャストして使用します。

  • ブックマーク : アクセス: 24,568回
  • カテゴリー : C#
  • キーワード : ,

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

70 queries. HTML convert time: 1.278 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン