簡體   English   中英

C#進程沒有停止

[英]C# Process is not stopping

我正在使用以下代碼C#Process實例為PostgreSQL進行CSV導入。

Process process = new Process()
{
    StartInfo = new ProcessStartInfo
    {
        FileName = @"cmd.exe",
        Arguments = $"/c cat \"{filePath}\" | psql -h 127.0.0.1 -U {user} -d {dbname} -w -c \"copy data_temp from stdin csv header\"  ",
        RedirectStandardOutput = true,
        UseShellExecute = false,
        CreateNoWindow = true,
    }
};

process.Start();
string result = process.StandardOutput.ReadToEnd();
process.WaitForExit();
process.Dispose();

它可以工作,但是我在任務管理器中查看,過了一會兒,運行了許多PostgreSQL進程,最終數據庫被鎖定了。

我是否無法正常關閉該過程? 如何確保它不會保持打開狀態?

不確定這是否有幫助,但這是我有兩個通過msiexec和Exe殺死進程的示例。

卸載Msiexec.exe文件…

Process x = new Process();
x.StartInfo.FileName = "msiexec.exe";
x.StartInfo.Arguments = "/qb /x {81681F4C-83F1-4F22-9AEB-C7DA7C372EA2}";[quiet uninstall] 
x.Start();
x.WaitForExit();

卸載exe(文件路徑方法,不是msiexec)

Process a = new Process();
a.StartInfo.FileName = JPRO_8_5_0; //defined in a string before hand. 
a.StartInfo.Arguments = "/uninstall /quiet";
a.Start();
a.WaitForExit();

您可以嘗試將文件名設為之前定義的字符串,而不用將其命名為@“ cmd.exe”,這可能會有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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