1、不带参数:使用ThreadStart。
private void funcName()
{
// ...
}
public void Test()
{
Thread t = new Thread(new ThreadStart(funName));
t.Start();
}
2、带一个参数:使用ParameterizedThreadStart。
private void funcName(object obj)
{
// ...
}
public void Test()
{
Thread t = new Thread(new ParameterizedThreadStart(funcName));
t.Start("xxx");
}
3、带多个参数:
由于Thread默认只提供了以上两种构造函数,如果需要传递多个参数,可以使用以下方法:
(1)将多个参数放到一个结构体或类对象中,再使用ParameterizedThreadStart;
(2)新建一个类,将线程的入口函数定义为类定义的成员函数,参数定义为类的属性。
class StartClass
{
public int px, py;
public StartClass(int x, int y)
{
px = x;
py = y;
}
public void funcName()
{
// ...
}
}
public void Test()
{
StartClass start = new StartClass(50, 100);
Thread t = new Thread(new ThreadStart(start.funcName));
t.Start();
}