新的Thread(void Target())和新的Thread(新的ThreadStart(void Target()))有什么区别?

时间:2012-05-07 12:30:53

标签: c# multithreading

很抱歉,如果之前有人问过这个问题,但我想简单回答以下两种用法之间的区别。 VS似乎接受它们都是有效的代码。

private static void doSomeWork()
{
   //do some work
}

public someClass()
{
   //Thread thread = new Thread(doSomeWork);
   //or
   //Thread thread = new Thread(new ThreadStart(doSomeWork));
}

1 个答案:

答案 0 :(得分:6)

唯一的区别是第一个在C#1中不起作用.C#2及更高版本的编译器将第一个转换为第二个。

方法组可隐式转换为具有兼容签名的委托类型。此功能称为“(隐式)方法组转换”。有时您需要第二个指导重载解析,但这不是这种情况。