Поточная обработка библиотеки для многопоточной [закрытой] службы Windows

6
задан Gennady Vanin Геннадий Ванин 20 May 2013 в 08:09
поделиться

3 ответа

Рассмотрите этот проект http://www.codeplex.com/smartthreadpool

Описание проекта

Smart Thread Pool - это пул потоков, написанный на C #. Он намного более продвинут, чем встроенный пул потоков .NET. Вот список функций пула потоков:

  • Число потоков динамически изменяется в соответствии с рабочей нагрузкой на потоки в пуле.
  • Рабочие элементы могут возвращать значение.
  • Рабочий элемент можно отменить.
  • Контекст вызывающего потока используется при выполнении рабочего элемента (ограничено).
  • Использование минимального количества дескрипторов событий Win32, чтобы счетчик дескрипторов приложения не увеличивался.
  • Вызывающий может дождаться завершения нескольких или всех рабочих элементов.
  • Рабочий элемент может иметь обратный вызов PostExecute, который вызывается, как только рабочий элемент завершается.
  • Объект состояния, сопровождающий рабочий элемент, может быть удален автоматически.
  • Исключения рабочего элемента отправляются обратно вызывающей стороне.
  • Рабочие элементы имеют приоритет.
  • Группа рабочих элементов.
  • Вызывающий может приостановить запуск пула потоков и группы рабочих элементов.
  • Потоки имеют приоритет.
  • Может запускать COM-объекты с однопоточным подразделением.
  • Поддержка делегатов Action и Func.
  • Поддержка WindowsCE (ограниченная)
  • MaxThreads и MinThreads могут быть изменены во время выполнения.
  • Улучшено поведение отмены.
4
ответ дан 9 December 2019 в 22:35
поделиться

Это немного щекотливо, но как насчет .NET Framework? Пространство имён System.Threading имеет всё необходимое для этого.

Если вы можете использовать .NET 4 или обратный порт в Rx Framework, то библиотека Task Parallel Library тоже может сделать часть этого немного проще, но даже без этого стандартный фреймворк имеет все, что вам нужно.

5
ответ дан 9 December 2019 в 22:35
поделиться

Если вам нужна библиотека планирования с поддержкой многопоточности, я уже использовал ее раньше: Quartz.NET

http://quartznet.sourceforge.net/

2
ответ дан 9 December 2019 в 22:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: