2017-05-16 10 views
1


私はこの小さなコードを持っています。パラメータ(オブジェクトと文字列)をスレッド( "th = new Thread(play);"の行)に渡すにはどうすればよいですか?
ありがとうございました!スレッド間でパラメータ(オブジェクトと文字列)を渡すにはどうすればよいですか?

private Thread th = null; 

private void Form1_KeyDown(object sender, KeyPressEventArgs e) 
{ 
    [...] 
    th = new Thread(play); 
    th.Start(); 
} 

private void play(object sender, string name) 
{ 
    [...] 
} 
+0

ます。https:// msdn.microsoft.com/en-us/library/1h2f2459(v=vs.110).aspx。 – itsme86

答えて

0

あなたのplay()メソッドのシグネチャを変更する必要があります:

private void play(object data) 
{ 
    object[] array = (object[])data; // data is actually an array of objects 

    object sender = array[0]; 
    string name = (string)array[1]; 
} 

次に、あなたはちょうどあなたがスレッドを開始方法に変更する必要があります。

th.Start(new object[] { sender, "whatever name" }); 
関連する問題