Threading Library for Multithreaded Windows Service
c#, multithreading, scheduling, task-parallel-library, threadpool
Solution
Consider this project http://www.codeplex.com/smartthreadpool
Project Description
Smart Thread Pool is a thread pool written in C#. It is far more advanced than the .NET built-in thread pool. Here is a list of the thread pool features:
- The number of threads dynamically changes according to the workload on the threads in the pool.
- Work items can return a value.
- A work item can be cancelled.
- The caller thread's context is used when the work item is executed (limited).
- Usage of minimum number of Win32 event handles, so the handle count of the application won't explode.
- The caller can wait for multiple or all the work items to complete.
- Work item can have a PostExecute callback, which is called as soon the work item is completed.
- The state object, that accompanies the work item, can be disposed automatically.
- Work item exceptions are sent back to the caller.
- Work items have priority.
- Work items group.
- The caller can suspend the start of a thread pool and work items group.
- Threads have priority.
- Can run COM objects that have single threaded apartment.
- Support Action and Func delegates.
- Support for WindowsCE (limited)
- The MaxThreads and MinThreads can be changed at run time.
- Cancel behavior is imporved.
Problem
I'm looking for a good library, preferably in C#, which I can use in a windows service and it will handle all the multithreading functionality needed. The service will run every x minutes, check a database for processes to call, and for each of them spawn a thread and run it. Each thread should handle exceptions, logging and such. Any suggestions?