vs-threading
AsyncLock
vs-threading | AsyncLock | |
---|---|---|
8 | 1 | |
955 | 173 | |
1.2% | 4.0% | |
9.4 | 0.0 | |
1 day ago | over 1 year ago | |
C# | C# | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
vs-threading
-
when to use pascal case (FirstName) or prefix underscore camel case (_firstName) when declaring an attirbutes inside class?
There is also an official MS analyzer for Async code, it has rules like avoid async void, don't use synchronous .Wait() or .Result etc. One of them is to use Async suffix, as per guidelines.
-
Implementing an Async Mutex
Any idea how this compares to what Visual Studio is doing: https://github.com/microsoft/vs-threading/blob/main/src/Microsoft.VisualStudio.Threading/AsyncSemaphore.cs
-
Is there a way to force an `async` computation / `MailboxProcessor` to use a unique thread?
Searching for SingleThreadedSynchronizationContext led me to Microsoft.VisualStudio.Threading. Is this library only intended for use with Visual Studio or is it also useful for working with other native and COM applications?
-
What NuGet packages do you automatically add
It looks like 2 of them, ya (although personally I'm on .NET Framework to minimize dependency file sizes). But there are many others, from catching async void (https://github.com/microsoft/vs-threading/blob/main/doc/analyzers/index.md ), to catching unsealed classes (small performance benefits, so why not), etc.
-
How would you fix this sync-over-async code?
Take a look at the JoinableTaskFactory in this library: https://github.com/microsoft/vs-threading
- Reentrant (Recursive) Async Lock is Impossible in C#
-
Prevent deadlock while calling async method inside synchronous one (inside environment with synchronization context)
I'd recommend a look at https://github.com/microsoft/vs-threading (don't worry about the name, you can use it outside of VS environment too).
-
C# Async fire and forget with error handling
All these concerns, and more, are why we in the Visual Studio team wrote the vs-threading library and its JoinableTaskFactory. We have a doc section on fire and forget and shutdown concerns just like you were asking about. If you follow the guidance, the way to wait on outstanding tasks at shutdown is as simple as:
AsyncLock
What are some alternatives?
.NET Runtime - .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
AsyncEx - A helper library for async/await.
AsyncBridge - A library to help bridge C# async method execution from synchronous methods, such as in Windows Forms and ASP.NET.
pete - A library for building servers that utilize the OpenMetaverse Transport Protocol: a protocol for communicating world information in the metaverse.
AspNetIdentity - ASP.NET Identity for ASP.NET 4.x applications
AsyncAwaitBestPractices - Extensions for System.Threading.Tasks.Task and System.Threading.Tasks.ValueTask
Open.ChannelExtensions - A set of extensions for optimizing/simplifying System.Threading.Channels usage.
AsyncAwaitBenchmark - Do we have to await every single async method?
MemoryPatternScanner - AOB Scanner(Array of bytes) wildcard, ReadProcessMemory, WriteProcessMemory.
LiquidState - Efficient asynchronous and synchronous state machines for .NET