6

我正在寻找一个好的库,最好是在 C# 中,我可以在 Windows 服务中使用它,它将处理所需的所有多线程功能。

该服务将每 x 分钟运行一次,检查数据库中要调用的进程,并为每个进程生成一个线程并运行它。

每个线程都应该处理异常、日志记录等。

有什么建议么?

4

3 回答 3

5

这有点开玩笑,但.NET Framework 怎么样?命名空间有你需要的System.Threading一切。

如果您可以使用 .NET 4 或 Rx 框架中的反向移植,任务并行库也可能会使其中一些变得更容易,但即使没有,标准框架也拥有您需要的一切。

于 2010-01-06T20:00:40.593 回答
4

考虑这个项目 http://www.codeplex.com/smartthreadpool

项目描述

Smart Thread Pool 是用 C# 编写的线程池。它比 .NET 内置线程池先进得多。以下是线程池功能的列表:

  • 线程数根据池中线程的工作负载动态变化。
  • 工作项可以返回一个值。
  • 可以取消工作项。
  • 执行工作项时使用调用者线程的上下文(受限)。
  • 使用最小数量的 Win32 事件句柄,因此应用程序的句柄数不会爆炸。
  • 调用者可以等待多个或所有工作项完成。
  • 工作项可以有一个 PostExecute 回调,该回调会在工作项完成后立即调用。
  • 伴随工作项的状态对象可以自动处理。
  • 工作项异常被发送回调用者。
  • 工作项具有优先权。
  • 工作项组。
  • 调用者可以暂停线程池和工作项组的启动。
  • 线程具有优先级。
  • 可以运行具有单线程单元的 COM 对象。
  • 支持 Action 和 Func 代表。
  • 支持 WindowsCE(有限)
  • MaxThreads 和 MinThreads 可以在运行时更改。
  • 取消行为得到改进。
于 2010-01-06T20:05:25.543 回答
2

如果你需要一个支持多线程的调度库,我之前用过这个:Quartz.NET

http://quartznet.sourceforge.net/

于 2010-01-06T20:09:56.870 回答