代码(只有部分)在大多数情况下都能正常工作,但它有时会挂在那里,即使任务管理器中的进程不存在,看起来也不会调用try ... catch块之后的行更多。
因为大部分时间都没有问题,所以我无法在调试时重现这个问题。任何人都可以给我一个提示,为什么或者这种情况会发生什么?
try {
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
process.WaitForExit(settings.PlinkConnectTimeout * 1000);
if (process != null && !process.HasExited) {
if (IsConnected) {
process.WaitForExit();
}
else {
process.Kill();
}
}
}
catch { }
IsConnected = false;
IsConnecting = false;
Disconnected(isLastSuccess, isReconnect);