dotNet-turbo
dotNet-turbo copied to clipboard
Collection of useful classes for your .NET application (object pool, thread pool, async processing, queues, collections, multithreading primitives, etc.)
Qoollo Turbo

Collection of useful classes for your .NET application.
Library contains a number of reuseful base classes:
- Object pools - easy to use object pools;
- Asynchronous data processing with queue - help in parallelization of item processing;
- Thread pools - fast thread pools with dynamic adjustment of thread count;
- Thread set manager - simplify common thread start/stop scenarios;
- SemaphoreLight - extremely fast lightweight semaphore;
- BlockingQueue - thread safe queue with blocking (up to 5 times faster than
BlockingCollection<T>); - EntryCountingEvent - allow to control the clients entered some block of code;
- ThrottlingBehaviour - allow to limit the maximum requests per second;
- IoC container - simple inversion-of-control container;
- WeakDelegate, WeakEvent - event with weak reference to subscribers;
- Deque - collection of elements organized as deque;
- Priority Queues - simple queue with limited number of priorities;
- CircularList - collection that stores elements inside circular buffer;
- Read only collections - a number of useful readonly collections (List, Dictionary, HashSet);
- A bunch of extension methods for
IEnumerable<T>,Type,Exception; - MonitorObject - object oriented abstraction over BCL
Monitor.Wait(),Monitor.Pulse(),Monitor.PulseAll(); - Queues - exposes 4 types of thread-safe blocking queues:
MemoryQueue<T>,DiskQueue<T>,TransformationQueue<T>andLevelingQueue<T>; - BatchingQueue - queue in which items are enqueued one-by-one and dequeued in batches. Exposes
ConcurrentBatchingQueue<T>andBlockingBatchingQueue<T>.