A predictable active thread pool where work items are queued as delegates and you control the pool size.
NTDLS.Semaphore Usage
Article
Critical resources and semaphores for C# with pessimistic and optimistic locking, timeouts and deadlock-prevention patterns.