vs-threading

The Microsoft.VisualStudio.Threading is a xplat library that provides many threading and synchronization primitives used in Visual Studio and other applications.

Microsoft.VisualStudio.Threading

NuGet package Build status Join the chat at https://gitter.im/vs-threading/Lobby

Analyzers: NuGet package

Features

  • Async versions of many threading synchronization primitives
    • AsyncAutoResetEvent
    • AsyncManualResetEvent
    • AsyncBarrier
    • AsyncCountdownEvent
    • AsyncSemaphore
    • AsyncReaderWriterLock
  • Async versions of very common types
    • AsyncLazy<T>
    • AsyncLocal<T>
    • AsyncQueue<T>
    • AsyncEventHandler
  • Await extension methods
    • Await on a TaskScheduler to switch to it. Switch to a background thread with await TaskScheduler.Default;
    • Await on a Task with a timeout
    • Await on a Task with cancellation
  • JoinableTaskFactory that allows you to schedule asynchronous or synchronous work that does not deadlock with the UI thread even when the UI thread needs to synchronously block on the result.

Documentation

Supported platforms

  • .NET 4.5
  • Windows 8
  • Windows Phone 8.1
  • .NET Portable (Profile111, or .NET Standard 1.1)

Related Repositories

spawnling

spawnling

spawn gem for Rails to easily fork or thread long-running code blocks ...

FiberTaskingLib

FiberTaskingLib

A library for enabling task-based multi-threading. It allows execution of task g ...

Concurrency-concepts

Concurrency-concepts

A guide to concurrency, multi-threading and parallel programming concepts. Expla ...

spawn

spawn

spawn plugin for Rails to easily fork or thread long-running code blocks ...

Winton.Extensions.Threading.Actor

Winton.Extensions.Threading.Actor

An implementation of an actor designed to integrate with C#'s async/await. ...