スレッドで実行するメソッドに引数を複数指定するサンプルです。
複数指定するときは ParameterizedThreadStart を使うと簡単です。
テストコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public void Test()
{
object[] obj = new object[5];
obj[0] = "テストメッセージ1";
obj[1] = 2;
obj[2] = DateTime.Now;
obj[3] = false;
obj[4] = "テストメッセージ2";
Thread thread = new Thread(new ParameterizedThreadStart(TestProc));
thread.Start(obj);
}
public void TestProc(object args)
{
// 引数の展開します。
object[] argsTmp = (object[])args;
for (int i = 0; i < argsTmp.Length; i++)
{
Console.WriteLine((string)argsTmp[i].ToString());
}
}
|
出力
テストメッセージ1
2
2011/05/31 21:26:45
False
テストメッセージ2