代码(仅部分)大部分时间都可以正常工作,但有时它只是挂在那里,即使任务管理器中的进程不再存在,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);