The Microsoft.VisualStudio.Threading is a xplat library that provides many threading and synchronization primitives used in Visual Studio and other applications.
Async versions of many threading synchronization primitives
AsyncAutoResetEvent
AsyncBarrier
AsyncCountdownEvent
AsyncManualResetEvent
AsyncReaderWriterLock
AsyncSemaphore
ReentrantSemaphore
Async versions of very common types
AsyncEventHandler
AsyncLazy<T>
AsyncLazyInitializer
AsyncLocal<T>
AsyncQueue<T>
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.