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>
.