Namespace Microsoft.VisualStudio.Threading
Classes
- AsyncAutoResetEvent
An asynchronous implementation of an AutoResetEvent.
- AsyncBarrier
An asynchronous barrier that blocks the signaler until all other participants have signaled.
- AsyncCountdownEvent
An asynchronous style countdown event.
- AsyncCrossProcessMutex
A mutex that can be entered asynchronously.
- AsyncLazyInitializer
Lazily executes a delegate that has some side effect (typically initializing something) such that the delegate runs at most once.
- AsyncLazy<T>
A thread-safe, lazily and asynchronously evaluated value factory.
- AsyncLocal<T>
Stores references such that they are available for retrieval in the same call context.
- AsyncManualResetEvent
A flavor of ManualResetEvent that can be asynchronously awaited on.
- AsyncQueue<T>
A thread-safe, asynchronously dequeuable queue.
- AsyncReaderWriterLock
A non-blocking lock that allows concurrent access, exclusive access, or concurrent with upgradeability to exclusive access.
- AsyncReaderWriterLock.Awaiter
Manages asynchronous access to a lock.
- AsyncReaderWriterResourceLock<TMoniker, TResource>
A non-blocking lock that allows concurrent access, exclusive access, or concurrent with upgradeability to exclusive access, making special allowances for resources that must be prepared for concurrent or exclusive access.
- AsyncSemaphore
An asynchronous SemaphoreSlim like class with more convenient release syntax.
- AwaitExtensions
Extension methods and awaitables for .NET 4.5.
- CancellationTokenExtensions
Extensions to CancellationToken.
- DelegatingJoinableTaskFactory
A JoinableTaskFactory base class for derived types that delegate some of their work to an existing instance.
- HangReportContribution
A contribution to an aggregate hang report.
- IllegalSemaphoreUsageException
Exception which is thrown when the contract of a ReentrantSemaphore is violated.
- JoinableTask
Tracks asynchronous operations and provides the ability to Join those operations to avoid deadlocks while synchronously blocking the Main thread for the operation's completion.
- JoinableTaskCollection
A collection of incomplete JoinableTask objects.
- JoinableTaskContext
A common context within which joinable tasks may be created and interact to avoid deadlocks.
- JoinableTaskContext.HangDetails
A class to encapsulate the details of a possible hang. An instance of this JoinableTaskContext.HangDetails class will be passed to the JoinableTaskContextNode instances who registered the hang notifications.
- JoinableTaskContextException
An exception thrown when the configuration provided to the JoinableTaskContext are incorrect or a virtual method is overridden such that it violates a contract. This exception should not be caught. It is thrown when the application has a programming fault.
- JoinableTaskContextNode
A customizable source of JoinableTaskFactory instances.
- JoinableTaskFactory
A factory for starting asynchronous tasks that can mitigate deadlocks when the tasks require the Main thread of an application and the Main thread may itself be blocking on the completion of a task.
- JoinableTask<T>
Tracks asynchronous operations and provides the ability to Join those operations to avoid deadlocks while synchronously blocking the Main thread for the operation's completion.
- NoMessagePumpSyncContext
A SynchronizationContext whose synchronously blocking Wait method does not allow any reentrancy via the message pump.
- NonConcurrentSynchronizationContext
A SynchronizationContext that executes messages in the order they are received.
- ProgressWithCompletion<T>
An incremental progress reporting mechanism that also allows asynchronous awaiting for all reports to be processed.
- ReentrantSemaphore
A JoinableTaskFactory-aware semaphore that allows reentrancy without consuming another slot in the semaphore.
- SemaphoreFaultedException
Exception thrown when a ReentrantSemaphore is in a faulted state.
- SingleThreadedSynchronizationContext
A single-threaded synchronization context, akin to the DispatcherSynchronizationContext and WindowsFormsSynchronizationContext.
- SingleThreadedSynchronizationContext.Frame
A message pumping frame that may be pushed with PushFrame(Frame) to pump messages on the owning thread.
- ThreadingTools
Utility methods for working across threads.
- TplExtensions
Extensions to the Task Parallel Library.
Structs
- AsyncCrossProcessMutex.LockReleaser
The value returned from EnterAsync(TimeSpan) that must be disposed to release the mutex.
- AsyncLazy<T>.RevertRelevance
A structure that hides relevance of a block of code from a particular AsyncLazy<T> and the JoinableTaskContext it was created with.
- AsyncReaderWriterLock.Awaitable
An awaitable that is returned from asynchronous lock requests.
- AsyncReaderWriterLock.LockHandle
A "public" representation of a specific lock.
- AsyncReaderWriterLock.Releaser
A value whose disposal releases a held lock.
- AsyncReaderWriterLock.Suppression
A value whose disposal restores visibility of any locks held by the caller.
- AsyncReaderWriterResourceLock<TMoniker, TResource>.ResourceAwaitable
An awaitable that is returned from asynchronous lock requests.
- AsyncReaderWriterResourceLock<TMoniker, TResource>.ResourceAwaiter
Manages asynchronous access to a lock.
- AsyncReaderWriterResourceLock<TMoniker, TResource>.ResourceReleaser
A value whose disposal releases a held lock.
- AsyncSemaphore.Releaser
A value whose disposal triggers the release of a lock.
- AwaitExtensions.AggregateExceptionAwaitable
The result of ConfigureAwaitForAggregateException(Task, bool) to prepare a Task to be awaited while throwing with all inner exceptions.
- AwaitExtensions.AggregateExceptionAwaiter
The result of GetAwaiter() to prepare a Task to be awaited while throwing with all inner exceptions.
- AwaitExtensions.ConfiguredTaskYieldAwaitable
An awaitable that will always lead the calling async method to yield, then immediately resume, possibly on the original SynchronizationContext.
- AwaitExtensions.ConfiguredTaskYieldAwaiter
An awaiter that will always lead the calling async method to yield, then immediately resume, possibly on the original SynchronizationContext.
- AwaitExtensions.ExecuteContinuationSynchronouslyAwaitable
A Task awaitable that has affinity to executing callbacks synchronously on the completing callstack.
- AwaitExtensions.ExecuteContinuationSynchronouslyAwaitable<T>
A Task awaitable that has affinity to executing callbacks synchronously on the completing callstack.
- AwaitExtensions.ExecuteContinuationSynchronouslyAwaiter
A Task awaiter that has affinity to executing callbacks synchronously on the completing callstack.
- AwaitExtensions.ExecuteContinuationSynchronouslyAwaiter<T>
A Task awaiter that has affinity to executing callbacks synchronously on the completing callstack.
- AwaitExtensions.SynchronizationContextAwaiter
An awaiter returned from GetAwaiter(SynchronizationContext).
- AwaitExtensions.TaskSchedulerAwaitable
An awaitable that executes continuations on the specified task scheduler.
- AwaitExtensions.TaskSchedulerAwaiter
An awaiter returned from GetAwaiter(TaskScheduler).
- CancellationTokenExtensions.CombinedCancellationToken
Provides access to a CancellationToken that combines multiple other tokens, and allows convenient disposal of any applicable CancellationTokenSource.
- JoinableTaskCollection.JoinRelease
A value whose disposal cancels a Join() operation.
- JoinableTaskContext.RevertRelevance
A structure that clears CallContext and SynchronizationContext async/thread statics and restores those values when this structure is disposed.
- JoinableTaskFactory.MainThreadAwaitable
An awaitable struct that facilitates an asynchronous transition to the Main thread.
- JoinableTaskFactory.MainThreadAwaiter
An awaiter struct that facilitates an asynchronous transition to the Main thread.
- ReentrantSemaphore.RevertRelevance
A structure that hides any evidence that the caller has entered a ReentrantSemaphore till this value is disposed.
- SpecializedSyncContext
A structure that applies and reverts changes to the SynchronizationContext.
- TplExtensions.NoThrowTaskAwaitable
An awaitable that wraps a task and never throws an exception when waited on.
- TplExtensions.NoThrowTaskAwaiter
An awaiter that wraps a task and never throws an exception when waited on.
- TplExtensions.NoThrowValueTaskAwaitable
An awaitable that wraps a task and never throws an exception when waited on.
- TplExtensions.NoThrowValueTaskAwaitable<TResult>
An awaitable that wraps a ValueTask<TResult> and never throws an exception when waited on.
- TplExtensions.NoThrowValueTaskAwaiter
An awaiter that wraps a task and never throws an exception when waited on.
- TplExtensions.NoThrowValueTaskAwaiter<TResult>
An awaiter that wraps a task and never throws an exception when waited on.
Interfaces
- IAsyncDisposable
Defines an asynchronous method to release allocated resources.
- IHangReportContributor
Provides a facility to produce reports that may be useful when analyzing hangs.
Enums
- AsyncReaderWriterLock.LockFlags
Flags that modify default lock behavior.
- AsyncReaderWriterResourceLock<TMoniker, TResource>.LockFlags
Flags that modify default lock behavior.
- JoinableTaskCreationOptions
Specifies flags that control optional behavior for the creation and execution of tasks.
- ReentrantSemaphore.ReentrancyMode
Describes ways the ReentrantSemaphore may behave when a semaphore request is made in a context that is already in the semaphore.
- RegistryChangeNotificationFilters
The various types of data within a registry key that generate notifications when changed.
Delegates
- AsyncEventHandler
An asynchronous event handler.
- AsyncEventHandler<TEventArgs>
An asynchronous event handler.