如果我有:
ThreadStart starter = delegate { MessageBox.Show("Test"); };
new Thread(starter).Start();
如何将其组合成一行代码?我试过:
new Thread(delegate { MessageBox.Show("Test"); }).Start();
但是我得到这个错误:
The call is ambiguous between the following methods or properties: 'System.Threading.Thread.Thread(System.Threading.ThreadStart)' and 'System.Threading.Thread.Thread(System.Threading.ParameterizedThreadStart)'
最佳答案
new Thread(() => MessageBox.Show("Test")).Start();
或
new Thread((ThreadStart)delegate { MessageBox.Show("Test"); }).Start();
或
new Thread(delegate() { MessageBox.Show("Test"); }).Start();
问题是当你声明一个委托(delegate)时没有指定它有多少参数,编译器不知道你是指 ThreadStart(0 parameters) 还是 ParameterizedThreadStart(1 parameter)。
关于c# - 简单的多线程 - 将语句合并为两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2597350/