public delegate void ThreadStart(); ThreadStart 委托既没有参数也没有返回值。这意味着不可以使用需要参数的方法启动线程,或从方法中获得返回值。
可以的:是用类的成员函数作为线程入口函数,那么就可以使用该类的成员变量了。 这样就可以为线程储存参数,供调用。 class myThread { public int p1; public string p2; public myThread(){} public void ThreadStartPoint() { // use p1 & p2; return ; } }//调用: myThread t = new myThread(); t.p1 = 0; t.p2 = "ddd"; m_thread = new Thread(new ThreadStart(t.ThreadStartPoint)); m_thread.Start();
public delegate void ThreadStart(); 是没错的! greenery(greenery) ,你的代码正确率有多高?
可以变通的来带参数嘛。 public class MyThreadClass { public int paramA; public int paramB; public void Process() { .... paramA; ... paramB; ... } public void StartThread(int a, int b) { paramA = a; paramB = b; Thread th = new Thread(Process); th.Start(); } }public void ...() { MyThreadClass thdCls = new MyThreadClass(); thdCls.StartThread(10, 20); }
ThreadStart 委托既没有参数也没有返回值。这意味着不可以使用需要参数的方法启动线程,或从方法中获得返回值。
这样就可以为线程储存参数,供调用。
class myThread
{
public int p1;
public string p2;
public myThread(){}
public void ThreadStartPoint()
{
// use p1 & p2;
return ;
}
}//调用:
myThread t = new myThread();
t.p1 = 0;
t.p2 = "ddd";
m_thread = new Thread(new ThreadStart(t.ThreadStartPoint));
m_thread.Start();
public class MyThreadClass
{
public int paramA;
public int paramB;
public void Process()
{
.... paramA; ... paramB; ...
}
public void StartThread(int a, int b)
{
paramA = a; paramB = b;
Thread th = new Thread(Process);
th.Start();
}
}public void ...()
{
MyThreadClass thdCls = new MyThreadClass();
thdCls.StartThread(10, 20);
}