目錄
2、帶一個參數:使用ParameterizedThreadStart。
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();
}