如果我有:
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)'
答案 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参数)。