c# - 简单的多线程 - 将语句合并为两行

标签 c# .net multithreading

如果我有:

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/

相关文章:

c# - 解析异常字符串

c# - 通过 API 提要在 C# 中提取 XML 元素

jquery - Telerik ASP .NET MVC Grid - 添加自定义删除按钮

c# - 从 "Windows Task Manager"进程列表中获取项目 c#

c# - 多线程加载xml文件到内存

java - 处理许多客户端的最佳方法(使用线程?)

没有互斥量的条件等待

c# - Gremlin.NET 是否支持提交异步字节码?

c# - 返回查看 ToList() 不工作

c# - 如何将 RibbonGroup 向右对齐?