AsyncLock - An async/await-friendly lock for

  •        242

Unlike most other so-called "async locks" for C#, AsyncLock is actually designed to support the programming paradigm lock encourages, not just the technical elements. You can read more about the pitfalls with other so-called asynchronous locks and the difficulties of creating a reentrance-safe implementation here. With AsyncLock, you don't have to worry about which thread is running what code in order to determine whether or not your locks will have any effect or if they'll be bypassed completely, you just write code the way you normally would and you'll find AsyncLock to correctly marshal access to protected code segments.

https://neosmart.net/blog/2017/asynclock-an-asyncawait-friendly-locking-library-for-c-and-net/
https://github.com/neosmart/AsyncLock

Tags
Implementation
License
Platform

   




Related Projects

AsyncEx - A helper library for async/await.

  •    CSharp

A helper library for async/await. Note: This README is for AsyncEx v5 (prerelease). For AsyncEx v4 (the current version), see here. If you are seeing an upgrade error when upgrading from v3 to v4, see this documentation.

MongoRepository - Repository abstraction layer on top of Official MongoDB C# driver

  •    CSharp

An easy to use library to use MongoDB with .NET. It implements a Repository pattern on top of Official MongoDB C# driver. This project is now available as a NuGet package for your convenience. If you're new to NuGet, check it out; it's painless, easy and fast. You can find this project by searching for MongoRepository in NuGet (or simply clicking here). Check the documentation for a step-by-step example and more advanced usage.

MaterialDesignInXamlToolkit - Google's Material Design in XAML & WPF, for C# & VB.Net.

  •    CSharp

Comprehensive and easy to use Material Design theme and control library for the Windows desktop. To load the source project you will need Visual Studio 2017. Don't worry if you have an earlier version, you can still use the compiled assemblies from NuGet (Install-Package MaterialDesignThemes). There are two demo projects in the solution, restore the necessary NuGet packages and correct the programming syntax that is not compatible with C# versions lower than C# 7.0 (currently used in Visual Studio 2017). Then, you should be able to fire both of these projects up. One is a "pure" Material Design project, the other illustrates how to combine with Dragablz & MahApps.

MaterialDesignInXamlToolkit - Google's Material Design in XAML & WPF, for C# & VB.Net.

  •    CSharp

Comprehensive and easy to use Material Design theme and control library for the Windows desktop.To load the source project you will need Visual Studio 2017. Don't worry if you have an earlier version, you can still use the compiled assemblies from NuGet (Install-Package MaterialDesignThemes). There are two demo projects in the solution, restore the NuGet packages and fire them both up. One is a "pure" Material Design project, the other illustrates how to combine with Dragablz & MahApps.


Enough AsyncLock

  •    

Helper class for locking accross one or several await calls. Based on code developed and described by Stephen Toub, http://blogs.msdn.com/b/pfxteam/archive/2012

SteamKit - SteamKit2 is a

  •    CSharp

SteamKit2 is a .NET library designed to interoperate with Valve's Steam network. It aims to provide a simple, yet extensible, interface to perform various actions on the network. Starting with version 1.2.2, SteamKit2 is distributed as a NuGet package.

concurrencpp - Modern concurrency for C++

  •    C++

concurrencpp is a tasking library for C++ allowing developers to write highly concurrent applications easily and safely by using tasks, executors and coroutines. By using concurrencpp applications can break down big procedures that need to be processed asynchronously into smaller tasks that run concurrently and work in a co-operative manner to achieve the wanted result. concurrencpp also allows applications to write parallel algorithms easily by using parallel coroutines. concurrencpp is a task-centric library. A task is an asynchronous operation. Tasks offer a higher level of abstraction for concurrent code than traditional thread-centric approaches. Tasks can be chained together, meaning that tasks pass their asynchronous result from one to another, where the result of one task is used as if it were a parameter or an intermediate value of another ongoing task. Tasks allow applications to utilize available hardware resources better and scale much more than using raw threads, since tasks can be suspended, waiting for another task to produce a result, without blocking underlying OS-threads. Tasks bring much more productivity to developers by allowing them to focus more on business-logic and less on low-level concepts like thread management and inter-thread synchronization.

APNS-Sharp - Apple Push Notification & Feedback Services Client C# Library

  •    CSharp

I've recently started a new project called PushSharp. Its goal is to combine APNS-Sharp as well as C2DM-Sharp into a single project. It takes some of the same great code from APNS-Sharp, and still allows you to easily send push notifications, but it also includes an optional abstraction layer for sending notifications to multiple platforms. Please go check it out. Once PushSharp is a bit more mature, this project will be deprecated. For now I will not be adding any major new functionality to this library.A free, open source, independent and mono compatible C#/.NET Library for interacting with Apple's Push Notification & Feedback Services for the iPhone/iPod.

oxyplot - A plotting library for .NET

  •    CSharp

You can find examples in the /Source/Examples folder in the code repository.The latest pre-release packages are pushed by AppVeyor CI to myget.org To install these packages, set the myget.org package source https://www.myget.org/F/oxyplot and remember the "-pre" flag.

Cake - (C# Make) is a cross platform build automation system

  •    CSharp

Cake (C# Make) is a build automation system with a C# DSL to do things like compiling code, copy files/folders, running unit tests, compress files and build NuGet packages. Cake is built on top of the Roslyn compiler which enables you to write your build scripts in C#. It supports the most common tools used during builds such as MSBuild, MSTest, xUnit, NUnit, NuGet, ILMerge, WiX and SignTool out of the box.

jwt - Jwt.Net, a JWT (JSON Web Token) implementation for .NET

  •    CSharp

This library supports generating and decoding JSON Web Tokens. Package is avaliable via NuGet. Or you can download and compile it yourself.

Squirrel.Windows - An installation and update framework for Windows desktop apps

  •    C++

Squirrel is both a set of tools and a library, to completely manage both installation and updating your Desktop Windows application, written in either C# or any other language (i.e., Squirrel can manage native C++ applications).Squirrel uses NuGet packages to create installation and update packages, which means that you probably already know most of what you need to create an installer.

cron-expression-descriptor - A

  •    CSharp

A .NET library that converts cron expressions into human readable descriptions. Cron Expression Descriptor releases can be installed with NuGet.

RoslynPad - A cross-platform C# editor based on Roslyn and AvalonEdit

  •    CSharp

RoslynPad is also available as NuGet packages which allow you to use Roslyn services and the editor in your own apps.RoslynPad.Roslyn* package versions will correspond to Roslyn's.

Ming-Sharp

  •    C

Ming-Sharp is a wrapper which wraps Ming objects in C# objects. It's open-source (LGPL) library which allows you to create SWF (quot;Flashquot;) format movies. Ming-Sharp supports almost all of Flash 4's features, including: shapes, gradients, bitmaps, etc

QRCoder - A pure C# Open Source QR Code implementation

  •    CSharp

QRCoder is a simple library, written in C#.NET, which enables you to create QR codes. It hasn't any dependencies to other libraries and is available as .NET Framework and .NET Core PCL version on NuGet. QRCoder is project by Raffael Herrmann and was first released in 10/2013. It's licensed under the MIT license.

language-ext - C# functional language extensions - a base class library for functional programming

  •    CSharp

This library uses and abuses the features of C# 6+ to provide a functional 'Base class library', that, if you squint, can look like extensions to the language itself.language-ext is an MIT-licensed open source project. Its ongoing development is made possible thanks to the support by these awesome backers. If you'd like to join them, check out the language-ext Patreon campaign. Or if you'd just like to help support the coffee fund, that is very welcome too!.

confluent-kafka-dotnet - Confluent's Apache Kafka .NET client

  •    CSharp

confluent-kafka-dotnet is Confluent's .NET client for Apache Kafka and the Confluent Platform.High performance - confluent-kafka-dotnet is a lightweight wrapper around librdkafka, a finely tuned C client.

ini-parser - Read/Write an INI file the easy way!

  •    CSharp

A .NET, Mono and Unity3d compatible(*) library for reading/writing INI data from IO streams, file streams, and strings written in C#. Also implements merging operations, both for complete ini files, sections, or even just a subset of the keys contained by the files.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.