TaskFactory Task ThreadPool

token不能为空 2018-10-16 03:56:49
MSDN 这个类描述是
Provides support for creating and scheduling Task objects.

但是现在创建Task的完全没必要在写 Task.Factory.StartNew 这种
可以直接 Task.StartNew 或者 Task.Run
在看他的一堆方法ContinueWhenAny ContinueWhenAll一大堆重载,和Task下面也是重复的
这样的话这个类只剩下一个TaskFactory.FromAsync 一个有特点的方法了

另外在Task 和 ThreadPool 怎么取舍
大家平时怎么写的,想看看各位观点
...全文
384 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2018-10-17
  • 打赏
  • 举报
回复
就我个人而言, task操控起来更方便一点。 至于控制数量,https://social.msdn.microsoft.com/Forums/zh-CN/b02ba3b4-539b-46b7-af6b-a5ca3a61a309/task2021921153357743262232447312432596837327?forum=visualcshartzhchs
token不能为空 2018-10-17
  • 打赏
  • 举报
回复
引用 8 楼 wowfiowow 的回复:
Task.StartNew , Task.Run 不是4.0的写法吧
task是微软封装好的线程池,比自己搞的ThreadPool方便,限制数量也没问题


4.0没有这两个方法
task怎么限制数量呢?
橘子皮... 2018-10-17
  • 打赏
  • 举报
回复
Task.StartNew , Task.Run 不是4.0的写法吧 task是微软封装好的线程池,比自己搞的ThreadPool方便,限制数量也没问题
游北亮 2018-10-17
  • 打赏
  • 举报
回复
看你自己用哪种更适合吧, Task可以返回值、可以做ContinueWith等互相依赖的异步方法支持, 而ThreadPool只能完全的异步处理,返回值或有依赖的代码,只能自己实现。 如果你的异步代码,跟主线程没有任何关联,用哪个都一样。
  • 打赏
  • 举报
回复
引用 5 楼 Seilboy 的回复:
Task 用起来很方便啊,开销要比 ThreadPool大吗?
没有大到非要很在意的程度。
  • 打赏
  • 举报
回复
引用 2 楼 Seilboy 的回复:
[quote=引用 1 楼 chb345536638 的回复:] Task功能更强,除非我的版本用不了不然肯定Task
也不一定吧 ThreadPool 可以限制线程数量,Task就做不到[/quote] TaskFactory(TaskScheduler) LimitedConcurrencyLevelTaskScheduler
token不能为空 2018-10-16
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
前者更轻,后者可能你现在用的次数更多 --> 后者更轻,前者可能你现在用的次数更多


Task 用起来很方便啊,开销要比 ThreadPool大吗?
  • 打赏
  • 举报
回复
前者更轻,后者可能你现在用的次数更多 --> 后者更轻,前者可能你现在用的次数更多
  • 打赏
  • 举报
回复
Task.Run(() =>
{
    问候所有微信用户();
});
            ThreadPool.QueueUserWorkItem(h =>
{
    问候所有微信用户();
});
写起来没有什么差别,运行起来也没有太大区别,前者更轻,后者可能你现在用的次数更多。 都可以的写法,不必非要要求只用一种写法。这就好像有人用 EF,但不该因此就禁止别人直接用 ADO.NET 访问数据库。
token不能为空 2018-10-16
  • 打赏
  • 举报
回复
引用 1 楼 chb345536638 的回复:
Task功能更强,除非我的版本用不了不然肯定Task

也不一定吧
ThreadPool 可以限制线程数量,Task就做不到
  • 打赏
  • 举报
回复
Task功能更强,除非我的版本用不了不然肯定Task

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧