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

◆ QueueContinuation()

static void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.QueueContinuation ( Action continuation,
bool flowContext )
inlinestaticprivate

Definition at line 30 of file YieldAwaitable.cs.

31 {
32 if (continuation == null)
33 {
34 throw new ArgumentNullException("continuation");
35 }
36 if (TplEventSource.Log.IsEnabled())
37 {
38 continuation = OutputCorrelationEtwEvent(continuation);
39 }
41 if (current != null && current.GetType() != typeof(SynchronizationContext))
42 {
43 current.Post(s_sendOrPostCallbackRunAction, continuation);
44 return;
45 }
47 if (current2 == TaskScheduler.Default)
48 {
49 if (flowContext)
50 {
52 }
53 else
54 {
56 }
57 }
58 else
59 {
60 Task.Factory.StartNew(continuation, default(CancellationToken), TaskCreationOptions.PreferFairness, current2);
61 }
62 }
virtual void Post(SendOrPostCallback d, object? state)
static ? SynchronizationContext Current
static new TaskFactory< TResult > Factory
Definition Task.cs:56
static readonly TplEventSource Log
static bool QueueUserWorkItem(WaitCallback callBack)
static bool UnsafeQueueUserWorkItem(WaitCallback callBack, object? state)
static readonly SendOrPostCallback s_sendOrPostCallbackRunAction
static Action OutputCorrelationEtwEvent(Action continuation)

References System.Threading.Tasks.TaskScheduler.Current, System.Threading.SynchronizationContext.Current, System.Threading.Tasks.TaskScheduler.Default, System.Threading.Tasks.Task< TResult >.Factory, System.Threading.Tasks.TplEventSource.Log, System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.OutputCorrelationEtwEvent(), System.Threading.SynchronizationContext.Post(), System.Threading.ThreadPool.QueueUserWorkItem(), System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.s_sendOrPostCallbackRunAction, System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.s_waitCallbackRunAction, and System.Threading.ThreadPool.UnsafeQueueUserWorkItem().

Referenced by System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.AwaitUnsafeOnCompleted(), System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.OnCompleted(), and System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.UnsafeOnCompleted().