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

◆ Run()

override void System.Threading.Tasks.TaskSchedulerAwaitTaskContinuation.Run ( Task ignored,
bool canInlineContinuationTask )
inlinesealedpackage

Definition at line 13 of file TaskSchedulerAwaitTaskContinuation.cs.

14 {
15 if (m_scheduler == TaskScheduler.Default)
16 {
17 base.Run(ignored, canInlineContinuationTask);
18 return;
19 }
20 bool flag = canInlineContinuationTask && (TaskScheduler.InternalCurrent == m_scheduler || Thread.CurrentThread.IsThreadPoolThread);
21 Task task = CreateTask(delegate(object state)
22 {
23 try
24 {
25 ((Action)state)();
26 }
27 catch (Exception exception)
28 {
29 Task.ThrowAsync(exception, null);
30 }
32 if (flag)
33 {
34 TaskContinuation.InlineIfPossibleOrElseQueue(task, needsProtection: false);
35 return;
36 }
37 try
38 {
39 task.ScheduleAndStart(needsProtection: false);
40 }
41 catch (TaskSchedulerException)
42 {
43 }
44 }
Task CreateTask(Action< object > action, object state, TaskScheduler scheduler)
void ScheduleAndStart(bool needsProtection)
Definition Task.cs:1702
delegate void Action()

References System.Action(), System.Threading.Tasks.AwaitTaskContinuation.CreateTask(), System.Threading.Thread.CurrentThread, System.Threading.Tasks.TaskScheduler.Default, System.exception, System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(), System.Threading.Tasks.AwaitTaskContinuation.m_action, System.Threading.Tasks.TaskSchedulerAwaitTaskContinuation.m_scheduler, System.state, System.task, and System.Threading.Tasks.Task< TResult >.ThrowAsync().