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

◆ WaitForExitAsync()

async Task System.Diagnostics.Process.WaitForExitAsync ( CancellationToken cancellationToken = default(CancellationToken))
inline

Definition at line 1338 of file Process.cs.

1339 {
1340 if (!Associated)
1341 {
1343 }
1344 if (!HasExited)
1345 {
1346 cancellationToken.ThrowIfCancellationRequested();
1347 }
1348 try
1349 {
1350 EnableRaisingEvents = true;
1351 }
1352 catch (InvalidOperationException)
1353 {
1354 if (!HasExited)
1355 {
1356 throw;
1357 }
1359 return;
1360 }
1361 TaskCompletionSource tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
1362 EventHandler handler = delegate
1363 {
1364 tcs.TrySetResult();
1365 };
1366 Exited += handler;
1367 try
1368 {
1369 if (!HasExited)
1370 {
1371 using (cancellationToken.UnsafeRegister(delegate(object s, CancellationToken cancellationToken)
1372 {
1373 ((TaskCompletionSource)s).TrySetCanceled(cancellationToken);
1374 }, tcs))
1375 {
1376 await tcs.Task.ConfigureAwait(continueOnCapturedContext: false);
1377 }
1378 }
1380 }
1381 finally
1382 {
1383 Exited -= handler;
1384 }
1386 {
1387 if (_output != null)
1388 {
1390 }
1391 if (_error != null)
1392 {
1394 }
1395 }
1396 }
AsyncStreamReader _output
Definition Process.cs:166
AsyncStreamReader _error
Definition Process.cs:168
static string NoAssociatedProcess
Definition SR.cs:14
Definition SR.cs:7
new Task< TResult > WaitAsync(CancellationToken cancellationToken)
Definition Task.cs:231

References System.Diagnostics.Process._error, System.Diagnostics.Process._output, System.Diagnostics.Process.Associated, System.cancellationToken, System.Runtime.Serialization.Dictionary, System.Diagnostics.Process.EnableRaisingEvents, System.Diagnostics.AsyncStreamReader.EOF, System.Diagnostics.Process.Exited, System.Diagnostics.Process.HasExited, System.SR.NoAssociatedProcess, System.s, and System.Threading.Tasks.Task< TResult >.WaitAsync().