Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
TaskCompletionSource.cs
Go to the documentation of this file.
2
4
5public class TaskCompletionSource
6{
7 private readonly Task _task;
8
9 public Task Task => _task;
10
12 {
13 _task = new Task();
14 }
15
20
23 {
24 }
25
30
32 {
34 {
35 ThrowHelper.ThrowInvalidOperationException(ExceptionResource.TaskT_TransitionToFinal_AlreadyCompleted);
36 }
37 }
38
40 {
42 {
43 ThrowHelper.ThrowInvalidOperationException(ExceptionResource.TaskT_TransitionToFinal_AlreadyCompleted);
44 }
45 }
46
48 {
49 if (exception == null)
50 {
52 }
53 bool flag = _task.TrySetException(exception);
54 if (!flag && !_task.IsCompleted)
55 {
57 }
58 return flag;
59 }
60
62 {
63 if (exceptions == null)
64 {
66 }
68 foreach (Exception exception in exceptions)
69 {
70 if (exception == null)
71 {
72 ThrowHelper.ThrowArgumentException(ExceptionResource.TaskCompletionSourceT_TrySetException_NullException, ExceptionArgument.exceptions);
73 }
74 list.Add(exception);
75 }
76 if (list.Count == 0)
77 {
78 ThrowHelper.ThrowArgumentException(ExceptionResource.TaskCompletionSourceT_TrySetException_NoExceptions, ExceptionArgument.exceptions);
79 }
80 bool flag = _task.TrySetException(list);
81 if (!flag && !_task.IsCompleted)
82 {
84 }
85 return flag;
86 }
87
88 public void SetResult()
89 {
90 if (!TrySetResult())
91 {
92 ThrowHelper.ThrowInvalidOperationException(ExceptionResource.TaskT_TransitionToFinal_AlreadyCompleted);
93 }
94 }
95
96 public bool TrySetResult()
97 {
98 bool flag = _task.TrySetResult();
99 if (!flag)
100 {
102 }
103 return flag;
104 }
105
106 public void SetCanceled()
107 {
109 }
110
112 {
114 {
115 ThrowHelper.ThrowInvalidOperationException(ExceptionResource.TaskT_TransitionToFinal_AlreadyCompleted);
116 }
117 }
118
119 public bool TrySetCanceled()
120 {
121 return TrySetCanceled(default(CancellationToken));
122 }
123
125 {
127 if (!flag && !_task.IsCompleted)
128 {
130 }
131 return flag;
132 }
133}
135{
136 private readonly Task<TResult> _task;
137
139
141 {
142 _task = new Task<TResult>();
143 }
144
149
152 {
153 }
154
159
161 {
163 {
164 ThrowHelper.ThrowInvalidOperationException(ExceptionResource.TaskT_TransitionToFinal_AlreadyCompleted);
165 }
166 }
167
169 {
171 {
172 ThrowHelper.ThrowInvalidOperationException(ExceptionResource.TaskT_TransitionToFinal_AlreadyCompleted);
173 }
174 }
175
177 {
178 if (exception == null)
179 {
181 }
182 bool flag = _task.TrySetException(exception);
183 if (!flag && !_task.IsCompleted)
184 {
186 }
187 return flag;
188 }
189
191 {
192 if (exceptions == null)
193 {
195 }
197 foreach (Exception exception in exceptions)
198 {
199 if (exception == null)
200 {
201 ThrowHelper.ThrowArgumentException(ExceptionResource.TaskCompletionSourceT_TrySetException_NullException, ExceptionArgument.exceptions);
202 }
203 list.Add(exception);
204 }
205 if (list.Count == 0)
206 {
207 ThrowHelper.ThrowArgumentException(ExceptionResource.TaskCompletionSourceT_TrySetException_NoExceptions, ExceptionArgument.exceptions);
208 }
209 bool flag = _task.TrySetException(list);
210 if (!flag && !_task.IsCompleted)
211 {
213 }
214 return flag;
215 }
216
217 public void SetResult(TResult result)
218 {
219 if (!TrySetResult(result))
220 {
221 ThrowHelper.ThrowInvalidOperationException(ExceptionResource.TaskT_TransitionToFinal_AlreadyCompleted);
222 }
223 }
224
225 public bool TrySetResult(TResult result)
226 {
227 bool flag = _task.TrySetResult(result);
228 if (!flag)
229 {
231 }
232 return flag;
233 }
234
235 public void SetCanceled()
236 {
238 }
239
241 {
243 {
244 ThrowHelper.ThrowInvalidOperationException(ExceptionResource.TaskT_TransitionToFinal_AlreadyCompleted);
245 }
246 }
247
248 public bool TrySetCanceled()
249 {
250 return TrySetCanceled(default(CancellationToken));
251 }
252
254 {
256 if (!flag && !_task.IsCompleted)
257 {
259 }
260 return flag;
261 }
262}
void SetException(IEnumerable< Exception > exceptions)
bool TrySetException(IEnumerable< Exception > exceptions)
TaskCompletionSource(object? state, TaskCreationOptions creationOptions)
TaskCompletionSource(TaskCreationOptions creationOptions)
bool TrySetCanceled(CancellationToken cancellationToken)
void SetCanceled(CancellationToken cancellationToken)
bool TrySetResult(TResult result)
Definition Task.cs:162
bool TrySetCanceled(CancellationToken tokenToRecord)
Definition Task.cs:2555
bool TrySetException(object exceptionObject)
Definition Task.cs:2542
static void ThrowInvalidOperationException()
static void ThrowArgumentNullException(string name)
static void ThrowArgumentException(ExceptionResource resource)