Found 7 packages
The wait-free queue is a high-performance thread-safe queue that does not require synchronised access. It is ideal for real-time applications such as graphical simulations and games.
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.
WebApiClient is a simple and powerful .NET Portable Library built to work as a middle layer between your application and a RESTFul service, like the Microsoft WebApi. It provides methods to make asynchronous, typed WebApi requests using the HttpClient class. It takes care of all the logic to create the request, wait for the response, handle exceptions and convert the response into an object, leaving you free of writing repetitive code. Supported Platforms: - .NET Framework 4.5 - Windows 8 Apps - Windows Phone Silverlight 8 - Windows Phone 8.1
Did you ever got frustrated about the limitations of Enums? Ever needed an Enum that supports Strings? Or your custom type? Did you ever wonder why you can't add any instance methods and properties to an Enum? Do you like to be able to enumerate over all members, ask their names, values and index? Or just call one of your custom method on the instances (strongly typed and real instance methods, not extenstion methods)? Did you ever wonder why you need to specify a value when the enum itself would satisfy your needs? Got annoyed to always have to include that "None"-member? If you answer some of this questions with yes, CustomEnum.vb is definitely something for you, except, of course, if you are a religious C# believer then you need to wait a little bit for the C# version. I have the intension to provide it somewhen soon but I have the feeling it is not done by simply pushing it through the converter. Although this is version 1.0, CustomEnum.vb is a carefully written, highly optimized, with a high code coverage tested and well documented source file written in VB.NET that provides 2 base classes called "CustomEnum" and "ValueEnum" with generic type parameters that allow you to build your own Enums according your individual needs. The first generic type parameter is always the type of your Enum (the subclass), the optional last one the type of the combination (Enum.Combi), and the second one (ValueEnum only) is the type of the value. Here an example: Public Class ShirtSize Inherits CustomEnum(Of ShirtSize) 'Constructors Private Sub New() MyBase.New() End Sub 'Public Fields Public Shared ReadOnly S As New ShirtSize() Public Shared ReadOnly M As New ShirtSize() Public Shared ReadOnly L As New ShirtSize() Public Shared ReadOnly XL As New ShirtSize() End Class The usage is the same as with standard Enums: Dim myShirt As Object = GetShirt(ShirtSize.XL) Private Function GetShirt(size As ShirtSize) As Object '... End Function Note that Enums are now reference types and may be null. Although this forces you to always check for null you never have to include that "None" member in your Enum anymore... If you like to work with "Select Case" that's still possible, you just have to append the ".Index" to the member, eg. ShirtSize.XL.Index. But CustomEnum also provides equals/inequals operators, you can use them like this "If (size = ShirtSize.XL) Then ..." Did I already mention that CustomEnum fully supports member combinations like with the FlagsAttribute? They are implemented as an inner class called "Combi" and there are functions and operators to construct them: SetHighSeasons(Season.Spring Or Season.Summer Or Season.Autumn) And the method looks like this: Private Sub SetHighSeasons(seasons As Season.Combi) For Each mySeason As Season In seasons 'do something Next End Sub There is many more to it: - CustomEnum is thread-safe. - CustomEnum checks and enforces correct implementation. - CustomEnum has lots of attributes applied to simplify editing, debugging and code-analysis. - CustomEnum allows to have subclasses for common functionality (although you cannot inherit members). - CustomEnum runs in partially trusted code as well as in full trust - CustomEnum does not make use of LINQ nor extension methods and is pure .NET 2.0. - CustomEnum has no dependencies to other packages. - CustomEnum only references mscorlib.dll and System.dll. - CustomEnum ships as one single source file (and an additional tutorial folder that can easily be deleted). - CustomEnum is free of charge. Thank you for your interest in this package, feed-back is welcome, our email naming convention is <given name>.<surname>@<company>.ch Best regards Chris
Xamarin.Forms, a "wait loader" or a loading indicator is typically used to inform the user that a time-consuming operation is in progress, such as data retrieval, processing, or any operation that may cause the UI to freeze or appear unresponsive.
In DotNet7 a "wait loader" or a loading indicator is typically used to inform the user that a time-consuming operation is in progress, such as data retrieval, processing, or any operation that may cause the UI to freeze or appear unresponsive.
Implementation of a lock-free dictionary on .Net This fork contain the following changes: - Non-snapshotting Keys and Values properties (Azure Gem) - Attempt at reducing GC pressure (Azure Gem, TODO: Measure effectiveness, seems to be minimal-to-nonexistent-to-imaginary, YMMV) - NonBlockingHashset wrapper (Azure Gem, TODO: Implement a proper one instead of a wrapper) - Capacity getter property (Azure Gem) - Capacity is not doubled on construction (Azure Gem) - Clear with capacity (Azure Gem) - EstimatedCount getter property (Azure Gem) - Removal of the hash mixer (Idea from https://github.com/VSadov/NonBlocking/issues/20#issuecomment-1545057207) - Rename everything from "Concurrent" to "Nonblocking" (Azure Gem) Some changes are specific to my use case. Included types: === NonBlocking.NonBlockingDictionary 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 === NonBlocking.NonBlockingHashSet Lock-free, wait-free implementation of a hashset based on NonBlockingDictionary. - 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. === Counter32 === Counter64 Low-overhead scalable counters. === Disclaimer I, Azure Gem, do not intend to maintain this fork.