3 回答
TA贡献1795条经验 获得超7个赞
是的:
Thread t = new Thread (new ParameterizedThreadStart(myMethod));
t.Start (myParameterObject);
TA贡献1804条经验 获得超7个赞
Thread构造函数的2个重载之一使ParameterizedThreadStart委托成为可能,该委托使您可以将单个参数传递给start方法。不幸的是,尽管它只允许使用一个参数,但这样做并不安全,因为它将其作为对象传递。我发现使用lambda表达式捕获相关参数并以强类型方式传递它们要容易得多。
尝试以下
public Thread StartTheThread(SomeType param1, SomeOtherType param2) {
var t = new Thread(() => RealStart(param1, param2));
t.Start();
return t;
}
private static void RealStart(SomeType param1, SomeOtherType param2) {
...
}
TA贡献1806条经验 获得超5个赞
您可以使用lambda表达式
private void MyMethod(string param1,int param2)
{
//do stuff
}
Thread myNewThread = new Thread(() => MyMethod("param1",5));
myNewThread.Start();
到目前为止,这是我能找到的最佳答案,它既快速又容易。
- 3 回答
- 0 关注
- 375 浏览
添加回答
举报