以下两段代码之间的区别是什么?
Foo parameter = // get parameter value
Thread thread = new Thread(new ParameterizedThreadStart(DoMethod));
thread.Start(parameter);
Foo parameter = // get parameter value
Thread thread = new Thread(DoMethod);
thread.Start(parameter);
private void DoMethod(object obj)
{
Foo parameter = (Foo)obj;
// ...
}
答案 0 :(得分:3)
没有区别。编译器隐式地将new Thread(DoMethod)
转换为new Thread(new ParameterizedThreadStart(DoMethod))
。在C#2中引入了方法组到具有兼容签名的委托的隐式转换;在此之前,你必须使用显式表格。