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

Kan*_*Yoo 4 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));
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*aos 6

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

方法组可隐式转换为具有兼容签名的委托类型.此功能称为"(隐式)方法组转换".有时你需要第二个引导重载分辨率,但这不是这里的情况.