Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ConfiguredTaskAwaitable.cs
Go to the documentation of this file.
3
5
6public readonly struct ConfiguredTaskAwaitable
7{
8 public readonly struct ConfiguredTaskAwaiter : ICriticalNotifyCompletion, INotifyCompletion, IConfiguredTaskAwaiter
9 {
10 internal readonly Task m_task;
11
12 internal readonly bool m_continueOnCapturedContext;
13
15
16 internal ConfiguredTaskAwaiter(Task task, bool continueOnCapturedContext)
17 {
18 m_task = task;
19 m_continueOnCapturedContext = continueOnCapturedContext;
20 }
21
22 public void OnCompleted(Action continuation)
23 {
24 TaskAwaiter.OnCompletedInternal(m_task, continuation, m_continueOnCapturedContext, flowExecutionContext: true);
25 }
26
27 public void UnsafeOnCompleted(Action continuation)
28 {
29 TaskAwaiter.OnCompletedInternal(m_task, continuation, m_continueOnCapturedContext, flowExecutionContext: false);
30 }
31
32 [StackTraceHidden]
33 public void GetResult()
34 {
36 }
37 }
38
40
41 internal ConfiguredTaskAwaitable(Task task, bool continueOnCapturedContext)
42 {
43 m_configuredTaskAwaiter = new ConfiguredTaskAwaiter(task, continueOnCapturedContext);
44 }
45
50}
51public readonly struct ConfiguredTaskAwaitable<TResult>
52{
54 {
55 private readonly Task<TResult> m_task;
56
57 private readonly bool m_continueOnCapturedContext;
58
59 public bool IsCompleted => m_task.IsCompleted;
60
61 internal ConfiguredTaskAwaiter(Task<TResult> task, bool continueOnCapturedContext)
62 {
63 m_task = task;
64 m_continueOnCapturedContext = continueOnCapturedContext;
65 }
66
67 public void OnCompleted(Action continuation)
68 {
69 TaskAwaiter.OnCompletedInternal(m_task, continuation, m_continueOnCapturedContext, flowExecutionContext: true);
70 }
71
72 public void UnsafeOnCompleted(Action continuation)
73 {
74 TaskAwaiter.OnCompletedInternal(m_task, continuation, m_continueOnCapturedContext, flowExecutionContext: false);
75 }
76
77 [StackTraceHidden]
83 }
84
85 private readonly ConfiguredTaskAwaiter m_configuredTaskAwaiter;
86
87 internal ConfiguredTaskAwaitable(Task<TResult> task, bool continueOnCapturedContext)
88 {
89 m_configuredTaskAwaiter = new ConfiguredTaskAwaiter(task, continueOnCapturedContext);
90 }
91
96}
ConfiguredTaskAwaiter(Task< TResult > task, bool continueOnCapturedContext)
ConfiguredTaskAwaitable(Task task, bool continueOnCapturedContext)
ConfiguredTaskAwaitable(Task< TResult > task, bool continueOnCapturedContext)
ConfiguredTaskAwaitable< TResult >.ConfiguredTaskAwaiter GetAwaiter()
static void OnCompletedInternal(Task task, Action continuation, bool continueOnCapturedContext, bool flowExecutionContext)