簡體   English   中英

在C#.NET中啟動和停止進程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM