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

◆ Invoke()

void System.Threading.Tasks.Task< TResult >.TwoTaskWhenAnyPromise< TTask >.Invoke ( Task completingTask)
inline

Implements System.Threading.Tasks.ITaskCompletionAction.

Definition at line 912 of file Task.cs.

913 {
914 Task task;
915 if ((task = Interlocked.Exchange(ref _task1, null)) != null)
916 {
917 Task task2 = _task2;
918 _task2 = null;
919 if (TplEventSource.Log.IsEnabled())
920 {
921 TplEventSource.Log.TraceOperationRelation(base.Id, CausalityRelation.Choice);
922 TplEventSource.Log.TraceOperationEnd(base.Id, AsyncCausalityStatus.Completed);
923 }
925 {
927 }
928 if (!task.IsCompleted)
929 {
930 task.RemoveContinuation(this);
931 }
932 else
933 {
934 task2.RemoveContinuation(this);
935 }
936 bool flag = TrySetResult((TTask)completingTask);
937 }
938 }
static void RemoveFromActiveTasks(Task task)
Definition Task.cs:1197

References System.Threading.Tasks.Task< TResult >.TwoTaskWhenAnyPromise< TTask >._task1, System.Threading.Tasks.Task< TResult >.TwoTaskWhenAnyPromise< TTask >._task2, System.Threading.Interlocked.Exchange(), System.Threading.Tasks.TplEventSource.Log, System.Threading.Tasks.Task< TTask >.RemoveFromActiveTasks(), System.Threading.Tasks.Task< TTask >.s_asyncDebuggingEnabled, System.task, and System.Threading.Tasks.Task< TTask >.TrySetResult().