【发布时间】:2010-12-31 07:21:19
【问题描述】:
有谁知道如何在 ParallelExtensionExtras 中使用以下类以及它们的用途?
IOCompletionPortTaskScheduler.cs
IOTaskScheduler.cs
【问题讨论】:
标签: c# .net parallel-processing task-parallel-library
有谁知道如何在 ParallelExtensionExtras 中使用以下类以及它们的用途?
IOCompletionPortTaskScheduler.cs
IOTaskScheduler.cs
【问题讨论】:
标签: c# .net parallel-processing task-parallel-library
IOTaskScheduler
虽然我们经常提到“那个”.NET 线程池,
ThreadPool.NET 中的抽象实际上是构建的 在两个池的顶部,一个称为 作为工人池和一个被称为 作为 I/O 池。前者是什么 以QueueUserWorkItem为目标 方法以及默认情况下TaskScheduler,而后者是 被针对UnsafeQueueNativeOverlapped方法, 并且经常用于工作 Windows 通信基础和 Windows 工作流基础。这IOTaskScheduler调度程序在 IOTaskScheduler.cs 文件运行任务 这个 I/O 线程池通过UnsafeQueueNativeOverlapped方法。
从这里:http://blogs.msdn.com/b/pfxteam/archive/2010/04/09/9990424.aspx
【讨论】:
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 请求时创建线程。
【讨论】: