コード(一部のみ)はほとんどの場合適切に機能しますが、タスクマネージャーのプロセスが存在しなくても、コードがハングして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);