简单的多线程 - 将语句组合成两行

Ada*_*dam 3 .net c# multithreading

如果我有:

ThreadStart starter = delegate { MessageBox.Show("Test"); };
new Thread(starter).Start();
Run Code Online (Sandbox Code Playgroud)

如何将其组合成一行代码?我试过了:

new Thread(delegate { MessageBox.Show("Test"); }).Start();
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

以下方法或属性之间的调用不明确:'System.Threading.Thread.Thread(System.Threading.ThreadStart)'和'System.Threading.Thread.Thread(System.Threading.ParameterizedThreadStart)'

Yur*_*ich 7

new Thread(() => MessageBox.Show("Test")).Start();
Run Code Online (Sandbox Code Playgroud)

要么

new Thread((ThreadStart)delegate { MessageBox.Show("Test"); }).Start();
Run Code Online (Sandbox Code Playgroud)

要么

new Thread(delegate() { MessageBox.Show("Test"); }).Start();
Run Code Online (Sandbox Code Playgroud)

问题是当你声明一个委托而没有指定它有多少参数时,编译器不知道你的意思是ThreadStart(0参数)还是ParameterizedThreadStart(1参数).