有没有人知道如何在PrallelExtensionExtras中使用IOCompletionPortTaskScheduler和IOTaskScheduler以及它们的用途是什么?

时间:2010-12-31 07:21:19

标签: c# .net parallel-processing task-parallel-library

有没有人知道如何在ParallelExtensionExtras中使用以下类以及它们用于什么?

IOCompletionPortTaskScheduler.cs
IOTaskScheduler.cs

2 个答案:

答案 0 :(得分:4)

  

<强> IOTaskScheduler

     

虽然我们经常提到“.NET”   线程池,ThreadPool   .NET中的抽象实际上是构建的   在两个游泳池之上,一个参考   作为工人池和一个提到的   作为I / O池。前者是什么   由QueueUserWorkItem定位   方法以及默认方法   TaskScheduler,而后者是。{   目标是   UnsafeQueueNativeOverlapped方法,   并经常用于工作   Windows Communication Foundation和   Windows Workflow Foundation。该   IOTaskScheduler调度程序   IOTaskScheduler.cs文件运行任务   这个I / O线程池通过   UnsafeQueueNativeOverlapped方法。

从这里开始:http://blogs.msdn.com/b/pfxteam/archive/2010/04/09/9990424.aspx

答案 1 :(得分:0)

  

IOCompletionPortTaskScheduler 类提供了一个任务调度程序,   使用I / O完成端口来控制并发。它是   必须设置调度程序中的最大线程数   并发执行和可用的线程数   用于执行任务的调度程序。

从这里开始:http://www.drdobbs.com/parallel/specialized-task-schedulers-in-net-4-par/228800428

以下内容来自:http://msdn.microsoft.com/en-us/library/windows/desktop/aa365198%28v=vs.85%29.aspx

  

I / O完成端口为。提供了高效的线程模型   在多处理器上处理多个异步I / O请求   系统。当进程创建I / O完成端口时,系统   为唯一目的的请求创建关联的队列对象   为这些请求提供服务。处理许多并发的进程   异步I / O请求可以更快速有效地执行此操作   将I / O完成端口与预先分配的线程结合使用   池,而不是在收到I / O请求时创建线程。