Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Dispose()

void System.Threading.CancellationTokenRegistration.Dispose ( )
inline

Implements System.IDisposable.

Definition at line 31 of file CancellationTokenRegistration.cs.

32 {
33 CancellationTokenSource.CallbackNode node2 = _node;
34 if (node2 != null && !node2.Registrations.Unregister(_id, node2))
35 {
36 WaitForCallbackIfNecessary(_id, node2);
37 }
38 static void WaitForCallbackIfNecessary(long id, CancellationTokenSource.CallbackNode node)
39 {
40 CancellationTokenSource source = node.Registrations.Source;
41 if (source.IsCancellationRequested && !source.IsCancellationCompleted && node.Registrations.ThreadIDExecutingCallbacks != Environment.CurrentManagedThreadId)
42 {
43 node.Registrations.WaitForCallbackToComplete(id);
44 }
45 }
46 }
readonly CancellationTokenSource.CallbackNode _node

References System.Threading.CancellationTokenRegistration._id, System.Threading.CancellationTokenRegistration._node, System.Environment.CurrentManagedThreadId, System.Threading.CancellationTokenSource.CallbackNode.Registrations, System.Threading.CancellationTokenSource.Registrations.Source, System.source, System.Threading.CancellationTokenSource.Registrations.Unregister(), and System.Threading.CancellationTokenSource.Registrations.WaitForCallbackToComplete().

Referenced by System.Threading.Tasks.Task< TResult >.DelayPromiseWithCancellation.DelayPromiseWithCancellation(), System.Threading.Tasks.Task< TResult >.CancellationPromise< TResult >.Cleanup(), System.Threading.Tasks.Task< TResult >.DelayPromiseWithCancellation.Cleanup(), System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget< T >.CleanupAndComplete(), System.Net.Sockets.SocketAsyncEventArgs.CompleteCore(), System.Threading.Tasks.Parallel.SyncForEachAsyncState< TSource >.Dispose(), System.Threading.CancellationTokenSource.Linked1CancellationTokenSource.Dispose(), System.Threading.CancellationTokenSource.Linked2CancellationTokenSource.Dispose(), System.Threading.Tasks.Parallel.AsyncForEachAsyncState< TSource >.DisposeAsync(), System.Data.Common.DbCommand.ExecuteDbDataReaderAsync(), System.Data.Common.DbCommand.ExecuteNonQueryAsync(), System.Data.Common.DbCommand.ExecuteScalarAsync(), System.Net.Http.Http2Connection.Http2Stream.GetResult(), System.IO.StreamBuffer.ResettableValueTaskSource.GetResult(), System.Threading.PeriodicTimer.State.GetResult(), System.Net.Http.HttpContent.LoadIntoBuffer(), System.Net.WebSockets.ManagedWebSocket._003CReceiveAsyncPrivate_003Ed__63< TResult >.MoveNext(), System.IO.Strategies.Net5CompatFileStreamStrategy.CompletionSource.ReleaseNativeResource(), System.IO.Pipes.PipeStream.PipeValueTaskSource.ReleaseResources(), Microsoft.Win32.SafeHandles.SafeFileHandle.OverlappedValueTaskSource.ReleaseResources(), System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource< TOutput >.RunCompletionAction(), System.Net.Mail.SmtpClient.SendMailAsync(), System.Net.Http.Http2Connection.WriteQueueEntry< T >.TryDisableCancellation(), System.Threading.Channels.AsyncOperation< TResult >.UnregisterCancellation(), and System.Threading.SemaphoreSlim.Wait().