错误:无法隐式转换类型' void'到' System.Threading.Thread'

时间:2017-12-25 02:52:03

标签: c# wpf multithreading

以下代码演示了创建执行相同作业的线程的两种方法,但只有一种方法有效,而另一种方法无效。我所看到的差异是变量的声明 - 有人可以帮助解释为什么这会导致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();
}

1 个答案:

答案 0 :(得分:0)

.Start()返回void。您将调用.Start()的结果分配给Thread t,而不是分配线程本身。

你应该这样做:

Thread t = new Thread(...);
t.Start();