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);
        }
Exemple #3
0
        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);
        }