void RefreshAsync() { try { var finder = new ManagedProcessesFinder(); foreach (var info in finder.FindAll(cancellationToken.Token)) { AddInfo(info); } } catch (OperationCanceledException) { } catch { //TODO: Show error to user } ExecInOriginalThread(() => { refreshThread = null; OnPropertyChanged("IsRefreshing"); }); }
void RefreshAsync() { try { var finder = new ManagedProcessesFinder(); foreach (var info in finder.FindAll(cancellationToken)) AddInfo(info); } catch (OperationCanceledException) { } catch { //TODO: Show error to user } ExecInOriginalThread(() => { refreshThread = null; OnPropertyChanged(nameof(IsRefreshing)); }); }
void AddInfo(ManagedProcessesFinder.Info info) { lock (infoListLock) { infoList.Add(info); if (infoList.Count == 1) ExecInOriginalThread(() => AddDiscoveredProcesses()); } }