如何在WinForms中创建一个线程?

Moo*_*oon 6 c# multithreading winforms

我需要帮助创建一个线程,C#winforms

private void button1_Click(object sender, EventArgs e) {
    Thread t=new Thread(new ThreadStart(Start)).Start();
}

public void Start() {
    MessageBox.Show("Thread Running");
}
Run Code Online (Sandbox Code Playgroud)

我一直收到这条消息:

Cannot implicitly convert type 'void' to 'System.Threading.Thread
Run Code Online (Sandbox Code Playgroud)

怎么做msdn文档是没有用的

Fre*_*els 15

这可行:

Thread t = new Thread (new ThreadStart (Start));
t.Start();
Run Code Online (Sandbox Code Playgroud)

这也可行:

new Thread (new ThreadStart(Start)).Start();
Run Code Online (Sandbox Code Playgroud)

MSDN文档很好而且正确,但是你做错了.:) 你做这个:

Thread t = new Thread (new ThreadStart(Start)).Start();
Run Code Online (Sandbox Code Playgroud)

所以,你在这里做的是尝试将Start()方法返回的对象(它是void)分配给Thread对象; 因此错误消息.

  • 特别是,MSDN文档表明`Start()`的返回类型是无效的...... (2认同)