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

时间:2010-04-08 03:13:32

标签: 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.Threading.ThreadStart)'   和   'System.Threading.Thread.Thread(System.Threading.ParameterizedThreadStart)'

1 个答案:

答案 0 :(得分:7)

new Thread(() => MessageBox.Show("Test")).Start();

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

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

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