就是我想在主函数的for循环中计算在20s的时间里,算出40个结果,也就是2个结果同时打印,有啥方法是可以这个样子?
想问一下大shen们,这种情况该这么处理?
就是我想在主函数的for循环中计算在20s的时间里,算出40个结果,也就是2个结果同时打印,有啥方法是可以这个样子?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 码老头 2022-02-19 13:55关注
在C#编程中,可以使用多种方式实现多线程,这里使用了
Parallel.For()
,先看运行效果:为了演示,示例中将
Sleep
时间设置成了200
毫秒。示例代码:
using System; using System.Linq; using System.Threading; using System.Threading.Tasks; namespace ConsoleApp2 { internal class Program { private static int[] _a; private static int[] _b; static void Main(string[] args) { Console.WriteLine("按任意键开始..."); Console.ReadKey(); _a = Enumerable.Range(1, 22).ToArray(); _b = Enumerable.Range(21, 22).ToArray(); Parallel.For(0, 2, new ParallelOptions { MaxDegreeOfParallelism = 2 }, (index) => { Console.WriteLine($"线程索引:{index}"); for (var i = 0; i < 20; i++) { var data = Add(i); Console.WriteLine($"第{i + 1}次结果:{data}"); } }); Console.WriteLine("任务已完成"); Console.ReadKey(); } private static int Add(int i) { Thread.Sleep(200); var c = _a[i] + _b[i]; return c; } } }
除此之外,还可以使用
Task.Factory.StartNew()
来实现等待所有线程任务都完成的效果,详细示例请参考:C#&.NET Core(.NET 6)编程开发中如何创建多线程并等待所有线程任务都执行完成呢? | 码友网 https://codedefault.com/q/67928317887本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
- ¥500 火焰左右视图、视差(基于双目相机)
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?