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
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.