Found 30 packages
An asynchronous .NET library that allows you to lock based on a key (keyed semaphores), limiting concurrent threads sharing the same key to a specified number, with optional pooling for reducing memory allocations.
This is a .NET Standard 1.0, .NET 2.0, .NET 3.5, Silverlight 5.0 and Windows Phone Silverlight 8.0 & 8.1 backport from System.Collections.Concurrent.ConcurrentDictionary as defined in .NET Core
System.ConcurrentDictionary for .NET Framework 2.0, 3.5. This is a backport from .NET Core.
Provides several thread-safe collection classes that should be used in place of the corresponding types in the System.Collections.NonGeneric and System.Collections packages whenever multiple threads are accessing the collection concurrently. Commonly Used Types: System.Collections.Concurrent.ConcurrentDictionary<TKey, TValue> System.Collections.Concurrent.ConcurrentQueue<T> System.Collections.Concurrent.ConcurrentBag<T> System.Collections.Concurrent.BlockingCollection<T> System.Collections.Concurrent.ConcurrentStack<T> When using NuGet 3.x this package requires at least version 3.4.
Incredibly fast hashmap
Extensions related to ConcurrentDictionary
Implementation of a lock-free dictionary on .Net Included types: === NonBlocking.ConcurrentDictionary Lock-free, wait-free implementation of a dictionary. - has the same API as System.Collections.Concurrent.ConcurrentDictionary. - No locks are taken during any operation including Get, Add, Remove, internal resizes etc... - While multiple threads accessing NonBlocking dictionary will help each other in operations such as table resizing, there is no dependency on such behavior. If any thread get unscheduled or delayed for whatever reason, other threads will be able to make progress independently. - NonBlocking dictionary scales linearly with the number of active threads if hardware permits. On most operations NonBlocking dictionary is faster than Concurrent, especially in write-heavy scenarios. Core algorithms are based on NonBlockingHashMap, written and released to the public domain by Dr. Cliff Click. A good overview could be found here: https://www.youtube.com/watch?v=HJ-719EGIts === Counter32 === Counter64 Low-overhead scalable counters.
A thread-safe, run-once, lazy-loaded ConcurrentDictionary full implementation of ConcurrentDictionary (+ Lazy)
Extensions method for System.Collections.Concurrent.ConcurrentDictionary. Use IValueWrapper for TValue.
The package includes: * Task<T> for executing asynchronous operations. * Concurrent Collections such as ConcurrentStack, ConcurentQueue ad ConcurrentDictionary. * PLINQ for writing parallel queries. * additional Threading operations such as Barrier,SpinLock and SpinWait.
Local Cache Tool Based on ConcurrentDictionary
High performance Data Repository with Value retrieval embeded. a single key could be used to get up to 7 strong typed values. ExpirableRepositories provide a similar set of Dictionaries with Timestamp indicating expirations of the values.
This is a .NET Standard 1.0, Silverlight 5.0 and Windows Phone Silverlight 8.0 & 8.1 backport from System.Collections.Concurrent.ConcurrentDictionary and System.Collections.Concurrent.ConcurrentQueue as defined in .NET Core
A thread-safe, run-once, lazy-loaded ConcurrentDictionary async full implementation of ConcurrentDictionary (+ Lazy, async)
Why is it that the List is so widely used, even when there is absolutly no need for the features of a List? I think one of the most important reasons is it beeing so easily available. You could simply use the extension method .ToList() on any IEnumerable. To help out in this matter, and hopefully help you use other (more suitable) generic collection types, I've created this package. It contains extension methods for IEnumerable to convert it to: Basic classes: - Stack - Queue - HashSet Interfaces: - ICollection - IEnumerable - ICollection - IList - ISet - IDictionary Concurrent classes: - ConcurrentBag - ConcurrentQueue - ConcurrentStack - ConcurrentDictionary
Generic repository
Provides the GetOrAdd extension method for generic dictionaries, borrowed from the ConcurrentDictionary class.
The fastest cache library written in C# for items with set expiration time. Easy to use, thread-safe and light on memory. Optimized to scale from dozens to millions of items. Features lock-free reads and writes, allocation-free reads and automatic eviction. Credit to Vladimir Sadov for his implementation of NonBlocking.ConcurrentDictionary which is used as an underlying store.
A concurrent HashSet based on Microsoft's ConcurrentDictionary.
A simple wrapper around ConcurrentDictionary to support set operations