AcTools.Utils.Helpers.ProcessExtension.WaitForExitAsync C# (CSharp) Méthode

WaitForExitAsync() public static méthode

public static WaitForExitAsync ( this process, CancellationToken cancellationToken = default(CancellationToken) ) : Task
process this
cancellationToken System.Threading.CancellationToken
Résultat Task
        public static Task WaitForExitAsync(this Process process, CancellationToken cancellationToken = default(CancellationToken)) {
            try {
                var tcs = new TaskCompletionSource<object>();
                process.EnableRaisingEvents = true;
                process.Exited += (sender, args) => tcs.TrySetResult(null);
                if (cancellationToken != default(CancellationToken)) {
                    cancellationToken.Register(() => { tcs.TrySetCanceled(); });
                }

                return tcs.Task;
            } catch (Exception) {
                return WaitForExitAsyncFallback(process, cancellationToken);
            }
        }