C# 简单的多线程-将语句组合到两行

C# 简单的多线程-将语句组合到两行,c#,.net,multithreading,C#,.net,Multithreading,如果我有: ThreadStart starter = delegate { MessageBox.Show("Test"); }; new Thread(starter).Start(); 如何将其合并为一行代码?我试过: new Thread(delegate { MessageBox.Show("Test"); }).Start(); 但我得到了这个错误: 两个用户之间的呼叫不明确 以下方法或属性: 'System.Threading.Thread.Thread(System.Thre

如果我有:

ThreadStart starter = delegate { MessageBox.Show("Test"); };
new Thread(starter).Start();
如何将其合并为一行代码?我试过:

new Thread(delegate { MessageBox.Show("Test"); }).Start();
但我得到了这个错误:

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

问题是,当您在声明委托时没有指定委托的参数数量,编译器不知道您指的是ThreadStart(0个参数)还是ParameterizedThreadStart(1个参数)

new Thread(() => MessageBox.Show("Test")).Start();
new Thread((ThreadStart)delegate { MessageBox.Show("Test"); }).Start();
new Thread(delegate() { MessageBox.Show("Test"); }).Start();