处理时挂起C#进程

时间:2018-05-28 19:57:13

标签: c# process

我从C#调用命令行进程,从某个远程服务器执行更新。当它可以找到远程服务器并从中获取数据时工作正常。如果没有连接到网络也可以正常工作。

但是,当远程服务器无法访问时,外部进程将尝试无限期地获取数据,并且没有命令行选项来指定超时。因此,在尝试15秒后,我在进程中添加了强制终止。

using (var process = new Process {...})
{
    process.Start();
    if (!process.WaitForExit(15 * 1000))
    {
        process.Kill();
    }
}

我可以看到在调用process.Kill()时进程被终止,但是在退出using范围时(即在处理进程时)它会挂起。

这有什么问题?我错过了什么来确保这个过程正确被杀?

谢谢!

修改

流程StartInfo是

FileName = command,
Arguments = arguments,
WorkingDirectory = workDir,
CreateNoWindow = true,
UseShellExecute = false

0 个答案:

没有答案