Кто-нибудь знает, как использовать IOCompletionPortTaskScheduler и IOTaskScheduler в PrallelExtensionExtras и как они используются? - PullRequest
2 голосов
/ 31 декабря 2010

Кто-нибудь знает, как использовать следующие классы в ParallelExtensionExtras и для чего они используются?

IOCompletionPortTaskScheduler.cs
IOTaskScheduler.cs

Ответы [ 2 ]

4 голосов
/ 31 декабря 2010

IOTaskScheduler

Хотя мы часто ссылаемся на «.NET» пул потоков ThreadPool абстракция в .NET фактически построена поверх двух бассейнов, один из которых упоминается в качестве рабочего пула и один из упомянутых в качестве пула ввода / вывода. Первое, что цель QueueUserWorkItem метод, а также по умолчанию TaskScheduler, в то время как последний целевой UnsafeQueueNativeOverlapped метод, и часто используется для работы в Windows Communication Foundation и Windows Workflow Foundation. IOTaskScheduler планировщик в Файл IOTaskScheduler.cs запускает задачи на этот пул потоков ввода / вывода через UnsafeQueueNativeOverlapped метод.

Отсюда: http://blogs.msdn.com/b/pfxteam/archive/2010/04/09/9990424.aspx

0 голосов
/ 29 сентября 2014

Класс IOCompletionPortTaskScheduler предлагает планировщик задач, который использует порт завершения ввода-вывода для управления параллелизмом.Необходимо установить максимальное количество потоков в планировщике, которые будут выполняться одновременно, и количество потоков, которые будут доступны в планировщике для выполнения задач.

Отсюда: 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

Порты завершения ввода / вывода обеспечивают эффективную модель потоков для обработки нескольких асинхронных запросов ввода / вывода в многопроцессорной системе.Когда процесс создает порт завершения ввода / вывода, система создает связанный объект очереди для запросов, единственной целью которых является обслуживание этих запросов.Процессы, которые обрабатывают много одновременных асинхронных запросов ввода-вывода, могут делать это быстрее и эффективнее, используя порты завершения ввода-вывода в сочетании с предварительно выделенным пулом потоков, чем создавая потоки во время получения запроса ввода-вывода.

...