[英]Starting and stopping a process in C# .NET
我正在嘗試編寫一個簡單的程序,它有兩個方法,一個啟動一個進程,一個啟動同一個進程。 如:
public Process StartProc(string procname)
{
Process proc = new Process();
proc.StartInfo.FileName = procname;
proc.Start();
return proc;
}
public void StopProc(Process proc)
{
proc.Close();
}
有可能這樣做嗎?
是的,您所追求的方法稱為Kill
,而不是Close
:
public void StopProc(Process proc)
{
proc.Kill();
}
這將強制關閉進程 - 如果可能,最好通過請求應用程序關閉主窗口來通知應用程序關閉:
public void StopProc(Process proc)
{
proc.CloseMainWindow();
}
這允許應用程序執行清理邏輯(例如保存文件),但是如果它選擇忽略請求則可以允許進程繼續運行,並且如果進程沒有主窗口則不會執行任何操作(例如,控制台應用程序)
有關更多信息,請參閱Process.CloseMainWindow
方法的文檔。
我想你正在尋找Process.Kill()
。
你真的不需要StopProc()
方法,你可以直接編寫proc.Kill()
。
但是,通常不建議您以這種殘酷的方式終止進程。 這樣做可以使共享對象處於未定義狀態。 如果你能找到一種方法來合作關閉這個首選的過程。
通過啟動該過程,您可以獲得該過程的唯一ID,然后您可以像這樣殺死它:
public static int Start(string processName)
{
var process =
Process.Start(processName);
return
process.Id;
}
public static void Stop(int processId)
{
var process =
Process.GetProcessById(processId);
process.Kill();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.