[英]How to kill a list of processes in c#
我是C#的新手,正在嘗試殺死進程列表。 我能夠使用下面的代碼殺死一個進程,但想對其進行更改,以便殺死一個進程列表。 隨着時間的流逝,列表會不斷增長,因此理想情況下,我想找到一種方法來快速,輕松地更新列表。
try
{
foreach (Process proc in Process.GetProcessesByName("notepad"))
{
proc.Kill();
}
}
catch (Exception)
{
Console.WriteLine("Procces not found.");
}
很抱歉,如果我忽略了一個已經被問到的問題。 預先感謝您提供的任何幫助。
如果更改了集合,則ObservableCollection<T>
類將提供一個事件。 因此,您可以創建Process
的集合並在事件處理程序中處理新添加的項目:
ObservableCollection<Process> processes = new ObservableCollection<Process>();
processes.CollectionChanged += processes_CollectionChanged;
static void processes_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null)
foreach (var process in e.NewItems.OfType<Process>())
process.Kill();
processes.Clear();//remove all Processes from the list
}
但是,以這種方式這樣做確實不值得。 我認為每次您想要終止一個進程時,調用代碼會更容易。
僅當您將通用參數更改為string
或int
並傳遞進程名稱或pid時,使用集合的方式才值得。 在這種情況下,您可以在CollectionChanged
事件處理程序中確定Process
對象並在那里殺死它們。 (就像您的代碼一樣。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.