[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.