Skip to content
ikopylov edited this page Aug 25, 2020 · 23 revisions

Collection of useful classes for your .NET application.

Library contains a number of reuseful base classes:

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