public async void StartAssemblyScan() { IsBusy = true; try { var allTests = await runner.Discover(); // Back on UI thread foreach (var vm in allTests) { TestAssemblies.Add(vm); } var evt = ScanComplete; evt?.Invoke(this, EventArgs.Empty); mre.Set(); } finally { IsBusy = false; } if (RunnerOptions.Current.AutoStart) { await Task.Run(() => mre.Wait()); await Run(); if (RunnerOptions.Current.TerminateAfterExecution) { PlatformHelpers.TerminateWithSuccess(); } } }