如何用一条语句调用多个Thread类实例的Start()方法?
在单行中调用多个实例的同一方法
C#本身没有提供像解构赋值那样直接在单行里调用多个实例同一方法的语法,但有几种简洁的替代方式可以实现类似效果:
使用foreach循环(单行写法)
将线程实例放入数组,通过foreach遍历调用Start()方法,整个逻辑可以写在一行:foreach (var thread in new[] { t1, t2, t3 }) thread.Start();使用LINQ的ForEach扩展方法
借助LINQ的ForEach方法,同样能在单行完成所有线程的启动:new[] { t1, t2, t3 }.ToList().ForEach(t => t.Start());.NET 6+ 集合表达式简化写法
如果使用的是.NET 6或更高版本,集合表达式让代码更简洁:[t1, t2, t3].ToList().ForEach(t => t.Start());
这些写法本质是通过遍历集合来统一调用方法,虽然不是语法层面的直接支持,但能达到用单行代码完成多个实例方法调用的需求,比单独写三行Start()更紧凑。
内容的提问来源于stack exchange,提问作者Basit
相关产品推荐
相关产品推荐

