Ash*_*Ash 6 multithreading worker-process azure plinq task-parallel-library
我想在Windows Azure上的Worker进程中使用TPL.我想在队列中添加一个IJob,这有一个Run方法,因此worker将包含:
loop get item off queue使用TPL调用IJob.Run,这是一个异步调用
但我有点担心我可以添加到TPL的最大项目?如果需要,我很乐意构建我自己的某种TPL池,只需检查它的功能.
干杯,灰.
Ree*_*sey 11
TPL的主要目标之一是不必担心这一点.通过将您的工作分解为Tasks而不是Threads,您可以让调度程序更适当地处理这种平衡.
您可以安排的"任务"数量没有固定的上限.它们(默认情况下,使用默认的TaskScheduler)使用ThreadPool进行调度,从.NET 4开始,它根据工作进行扩展.我强烈建议不要尝试建立自己的游泳池 - 你做得比默认游戏更有可能.话虽这么说,如果您的任务有非常不标准的行为,您可能需要考虑编写自定义TaskScheduler.
另外 - 要意识到理想情况下应该让你的任务"尽可能大".与单个任务相关的开销 - 使它们太小(就工作而言)将导致开销对性能的影响大于具有适当数量的较大"任务"的影响.
| 归档时间: |
|
| 查看次数: |
2250 次 |
| 最近记录: |