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

◆ DisposeAsync()

ValueTask System.Threading.CancellationTokenRegistration.DisposeAsync ( )
inline

Implements System.IAsyncDisposable.

Definition at line 48 of file CancellationTokenRegistration.cs.

49 {
50 CancellationTokenSource.CallbackNode node2 = _node;
51 if (node2 == null || node2.Registrations.Unregister(_id, node2))
52 {
53 return default(ValueTask);
54 }
55 return WaitForCallbackIfNecessaryAsync(_id, node2);
56 static ValueTask WaitForCallbackIfNecessaryAsync(long id, CancellationTokenSource.CallbackNode node)
57 {
58 CancellationTokenSource source = node.Registrations.Source;
59 if (source.IsCancellationRequested && !source.IsCancellationCompleted && node.Registrations.ThreadIDExecutingCallbacks != Environment.CurrentManagedThreadId)
60 {
61 return node.Registrations.WaitForCallbackToCompleteAsync(id);
62 }
63 return default(ValueTask);
64 }
65 }
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.WaitForCallbackToCompleteAsync().