线程和ThreadStart

26

以下两行代码都可以正常工作,但它们之间是否存在任何隐含差异?哪一种更好?

Thread t1 = new Thread(aMethod);

Thread t2 = new Thread(new ThreadStart(aMethod));

谢谢。


2
指定语言标签可能会吸引更多关注。C#? - Bert F
4个回答

15

没有区别,这两行是相等的。


我知道没有区别(已经尝试过),但如果能够提供任何额外的文档链接、参考资料等来支持它,那将是可取的。 - broadband

6

C#编译器会将 Thread t1 = new Thread(aMethod); 语句转换为 Thread t2 = new Thread(new ThreadStart(aMethod));

这种转换可以使代码更加简洁易读,不需要额外的解释。

3

它们其实是一样的,但第二个允许你在线程启动方法中使用额外的参数(使用ParametrizedThreadStart而不是ThreadStart)。


0

ThreadStart代表在线程上执行的方法,因此这正是相同的事情。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接