public void RemoveProcess(int id) { Process toBeRemovedFromList = ProcessesList.FirstOrDefault(c => c.Id == id); Process toBeRemovedFromQueue = ProcessesQueue.FirstOrDefault(c => c.Id == id); if (toBeRemovedFromList != null) { ProcessesList.Remove(toBeRemovedFromList); foreach (var process in ProcessesList) { if (process.Id > id) { --process.Id; } } } if (toBeRemovedFromQueue != null) { ProcessesQueue.Remove(toBeRemovedFromQueue); foreach (var process in ProcessesQueue) { if (process.Id > id) { --process.Id; } } } }
private async void RefreshGrid() { while (true) { await Task.Run(() => { Thread.Sleep(5000); Application.Current.Dispatcher.Invoke(delegate { try { lock (ProcessesList) { List <ProcessListItem> itemsToRemove = ProcessesList.Where(proc => !ProcessesManager.Processes.ContainsKey(proc.ProcessID)).ToList(); foreach (ProcessListItem p in itemsToRemove) { ProcessesList.Remove(p); } List <ProcessListItem> itemsToAdd = ProcessesManager.Processes.Values.Where(proc => !ProcessesList.Contains(proc)).ToList(); foreach (ProcessListItem p in itemsToAdd) { ProcessesList.Add(p); } } } catch (Exception e) { MessageBox.Show(e.Message); } }); }); } }
private void EndTaskImpl(object o) { Application.Current.Dispatcher.Invoke(delegate { var process = Process.GetProcessById(SelectedProcess.Id); try { process.Kill(); ProcessesList.Remove(SelectedProcess); GetProcesses(); } catch (Win32Exception e) { MessageBox.Show(e.Message); } }); }
private void KillProcess(object obj) { try { foreach (Process proc in Process.GetProcessesByName(SelectedProcess.ProcessName)) { proc.Kill(); } foreach (var itemToRemove in ProcessesList.Where(x => x.ProcessName == SelectedProcess.ProcessName).ToList()) { ProcessesList.Remove(itemToRemove); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }