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)'
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参数).