private async Task RefreshProcessListAsync(bool keepSelectedProcess) { if (ProcessListViewModel?.Processes == null) { return; } ProcessListViewModel.PerformanceCounterViewModel?.Dispose(); var selectedProcess = ProcessListViewModel.SelectedProcess; var filter = ProcessListViewModel.CollectionView?.Filter; var loadProcessTask = ProcessListViewModel?.LoadProcessesAsync(); var refreshInstanceTask = Task.Run(() => PerformanceCounterUtil.RefreshInstances()); await loadProcessTask; if (filter != null) { ProcessListViewModel.CollectionView.Filter = filter; } if (keepSelectedProcess) { ProcessListViewModel.Select(selectedProcess?.ProcessId); } await refreshInstanceTask; }
internal async Task Initialize() { var loadProcessTask = ProcessListViewModel?.LoadProcessesAsync(); var refreshInstanceTask = Task.Run(() => PerformanceCounterUtil.RefreshInstances()); await Task.WhenAll(loadProcessTask, refreshInstanceTask); }
private bool SetInstance(int processId) { string instance = PerformanceCounterUtil.GetPerformanceCounterInstance(processId); if (instance == null) { return(false); } foreach (var counter in Counters) { counter.UpdateInstance(instance); } return(true); }