首页 新闻 会员 周边 捐助

关于Task.Factory.StartNew和ThreadPool.QueueUserWorkItem

0
悬赏园豆:10 [待解决问题]

官方说法更推荐使用第一种。

场景:短时间内大量数据需要处理,比如每秒有1000条数据传入,每条数据的处理时间是10MS,这种情况下:

1:将传入的数据不断放入BlockingCollection,然后使用Task.Factory.StartNew来处理这个队列,也就是所有数据使用一个线程处理。

2:直接使用ThreadPool.QueueUserWorkItem来处理每条数据

似乎第二种方法的处理速度更快,但是因为使用的是多个线程,有时候执行的顺序并不是传入的顺序。

Müller的主页 Müller | 初学一级 | 园豆:122
提问于:2013-06-26 11:22
< >
分享
所有回答(1)
0

.nET 4.5之后建议使用Task,效率比较高

至于异步都是不安传入顺序执行的。Task也不安顺序

异步编程:.NET 4.5 基于任务的异步编程模型(TAP)

滴答的雨 | 园豆:3660 (老鸟四级) | 2013-06-26 18:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册