[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 型として渡ってくるので、呼び出されたメソッド側で、本来の型にキャストして使用します。
コメントはまだありません
No comments yet.
Sorry, the comment form is closed at this time.