2017-05-16 8 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" });