您好,登錄后才能下訂單哦!
在C#中,您可以使用System.Diagnostics.Process
類來監控多個進程的狀態
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
namespace ProcessMonitor
{
class Program
{
static void Main(string[] args)
{
// 要監控的進程名稱列表
List<string> processNames = new List<string> { "notepad", "calc" };
// 獲取當前正在運行的所有進程
Process[] runningProcesses = Process.GetProcesses();
// 查找要監控的進程
List<Process> monitoredProcesses = new List<Process>();
foreach (var process in runningProcesses)
{
if (processNames.Contains(process.ProcessName))
{
monitoredProcesses.Add(process);
}
}
Console.WriteLine("監控中的進程:");
foreach (var process in monitoredProcesses)
{
Console.WriteLine($"{process.ProcessName} - {process.Id}");
}
// 監控進程狀態
while (true)
{
Console.Clear();
Console.WriteLine("監控中的進程:");
foreach (var process in monitoredProcesses)
{
try
{
// 刷新進程信息
process.Refresh();
// 檢查進程是否仍在運行
if (!process.HasExited)
{
Console.WriteLine($"{process.ProcessName} - {process.Id} - 運行中");
}
else
{
Console.WriteLine($"{process.ProcessName} - {process.Id} - 已退出");
}
}
catch (Exception ex)
{
Console.WriteLine($"無法獲取進程信息:{ex.Message}");
}
}
// 每隔1秒鐘刷新一次狀態
System.Threading.Thread.Sleep(1000);
}
}
}
}
這個示例首先創建一個要監控的進程名稱列表。然后,它獲取當前正在運行的所有進程,并將要監控的進程添加到monitoredProcesses
列表中。接下來,它使用一個無限循環來監控進程狀態。在每次循環中,它會刷新進程信息并檢查進程是否仍在運行。如果進程已退出,它會輸出相應的狀態。循環每隔1秒鐘刷新一次狀態。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。