用于multithreadingWindows服务的线程库
我正在寻找一个好的库,最好是在C#中,我可以在Windows服务中使用它,它将处理所需的所有multithreadingfunction。
该服务将每隔x分钟运行一次,检查数据库是否有要调用的进程,并为每个进程生成一个线程并运行它。
每个线程都应该处理exception,日志记录等。
有什么建议?
考虑一下这个项目http://www.codeplex.com/smartthreadpool
项目描述
Smart Thread Pool是一个用C#编写的线程池。 它比.NET内置线程池更先进。 以下是线程池function的列表:
- 线程数根据池中线程的工作负载动态更改。
- 工作项可以返回值。
- 工作项可以取消。
- 执行工作项(限制)时使用调用者线程的上下文。
- 使用最少数量的Win32事件句柄,因此应用程序的句柄计数不会爆炸。
- 调用者可以等待多个或所有工作项完成。
- 工作项可以有一个PostExecute回调,在工作项完成后立即调用。
- 伴随工作项的状态对象可以自动处理。
- 工作项例外将发送回调用方。
- 工作项目具有优先权。
- 工作项目组。
- 调用者可以暂停线程池和工作项组的启动。
- 线程优先。
- 可以运行具有单线程单元的COM对象。
- 支持Action和Func委托。
- 支持WindowsCE(有限)
- MaxThreads和MinThreads可以在运行时更改。
- 取消行为得到了改善。
这有点舌头,但.NET Framework怎么样? System.Threading
命名空间具有您需要的所有内容。
如果您可以使用.NET 4或Rx Framework中的backport,那么任务并行库也可以使其中的一些更容易,但即使没有它,标准框架也可以满足您的所有需求。
如果您需要一个具有multithreading支持的调度库,我之前使用过:Quartz.NET