我正在从 C# 调用命令行进程,该进程从某个远程服务器进行更新。当它可以找到远程服务器并从中获取数据时,工作正常。如果未连接到网络也可以正常工作。
但是,当远程服务器无法访问时,外部进程将无限期地尝试获取数据,并且没有命令行选项来指定超时。所以我在尝试了 15 秒后对进程添加了强制终止。
using (var process = new Process {...})
{
process.Start();
if (!process.WaitForExit(15 * 1000))
{
process.Kill();
}
}
我可以看到进程被终止process.Kill()
被调用,但退出时挂起using
范围(即处理进程时)。
这有什么问题吗?我是否遗漏了一些东西来确保这个过程是properly killed?
Thanks!
EDIT:
进程开始信息是
FileName = command,
Arguments = arguments,
WorkingDirectory = workDir,
CreateNoWindow = true,
UseShellExecute = false
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)