2017-05-16 1 views
1


J'ai ce petit morceau de code. Comment puis-je passer les paramètres (l'objet et la chaîne) au thread (dans la ligne "th = new Thread(play);")?
Merci!Comment puis-je transmettre des paramètres (un objet et une chaîne) entre les threads C#?

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

Répondre

0

Vous aurez besoin de changer la signature pour la méthode 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]; 
} 

Ensuite, il vous suffit de changer la façon dont vous démarrez le fil:

th.Start(new object[] { sender, "whatever name" });