首页新闻找找看学习计划

在c#中 长时间任务选择Thread还是Task

0
悬赏园豆:50 [已解决问题] 解决于 2019-07-22 18:55

有多个长时间的任务,任务数量固定,其生命周期跟随程序,任务的具体内容大概是while循环中处理各种业务,请问选用Thread还是Task比较好,单核和多核对其性能有影响嘛?

niechangxu的主页 niechangxu | 初学一级 | 园豆:69
提问于:2019-07-22 15:49
< >
分享
最佳答案
1

根据场景和需要来,确定的独占的可以选择Thread 和Task,可变的不确定的任务池选择Task或者ThreadPool。

从写法上说,Task最简单方便,Task是对线程的进一步封装,本质上都是线程。

收获园豆:25
花飘水流兮 | 大侠五级 |园豆:9748 | 2019-07-22 17:58
其他回答(4)
0

推荐用Task,Task其实是对Thread还有线程池的进一步封装。用Task不容易出错,而且编码很方便

收获园豆:15
会长 | 园豆:4927 (老鸟四级) | 2019-07-22 15:52
0

Task,一般项目中的任务都用Task,统一管理

收获园豆:10
小光 | 园豆:1820 (小虾三级) | 2019-07-22 16:18
1

Task 和 Thread 原则上都是 可以实现新建一个线程或者从线程池获取线程来执行,没有哪个更好的说。
不过更建议Task,因为它属于比较新的sdk,提供了更多的选项支持
例:
Task.Factory.StartNew 方法 有个枚举参数 TaskCreationOptions,可以设置 TaskCreationOptions.LongRunning

xiaogui340 | 园豆:175 (初学一级) | 2019-07-25 09:15
0

Task 线程池
Thread 线程
Task线程池能重复利用线程,减少内存开销

木狼 | 园豆:206 (菜鸟二级) | 2019-08-06 15:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册