AttachToAnything.AttachToAnythingController.WaitUntilStarted C# (CSharp) Method

WaitUntilStarted() private method

private WaitUntilStarted ( string processName ) : void
processName string
return void
        private void WaitUntilStarted(string processName)
        {
            _logger.WriteLine("Waiting until '{0}' starts.", processName);

            var dialog = new WaitDialog();
            var dispatcher = Dispatcher.CurrentDispatcher;
            using (var cancellation = new CancellationTokenSource()) {
                _waitSource.WaitForAsync(processName, cancellation.Token).ContinueWith(_ => {
                    dispatcher.Invoke((Action)dialog.Close, DispatcherPriority.Send);
                    AttachTo(processName);
                }, TaskContinuationOptions.OnlyOnRanToCompletion);

                dialog.Model = new WaitDialogModel(processName, _waitSource.IsEfficient);
                var result = dialog.ShowModal();
                if (result == false)
                    cancellation.Cancel();
            }
        }