如何在线程c#之间传递参数(对象和字符串)?

如何在线程c#之间传递参数(对象和字符串)?,c#,multithreading,parameters,parameter-passing,C#,Multithreading,Parameters,Parameter Passing,我有这段代码。如何将参数(对象和字符串)传递给线程(在“th=newthread(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)


我有这段代码。如何将参数(对象和字符串)传递给线程(在“
th=newthread(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)
{
    [...]
}

您需要更改
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" });

您需要更改
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" });
..