以下代码演示了创建执行相同作业的线程的两种方法,但只有一种方法有效,而另一种方法无效。我所看到的差异是变量的声明 - 有人可以帮助解释为什么这会导致Error: Cannot implicitly convert type 'void' to 'System.Threading.Thread'
吗?
public MainWindow()
{
InitializeComponent();
// Runs OK
new Thread(() => { MessageBox.Show("foo");}).Start();
// Error: Cannot implicitly convert type 'void' to 'System.Threading.Thread'
Thread t = new Thread(() => { MessageBox.Show("foo”); }).Start();
}
答案 0 :(得分:0)
.Start()
返回void
。您将调用.Start()
的结果分配给Thread t
,而不是分配线程本身。
你应该这样做:
Thread t = new Thread(...);
t.Start();