Có thể nghịch đảo của câu hỏi này: Process.HasExited returns true even though process is running?C#: Process.HasExited trả về false mặc dù quá trình này đã chấm dứt
tôi gọi Kill() trên một quá trình và nó dường như đã kết thúc. Nhưng khi tôi thử nghiệm HasExited, tôi nhận được sai:
myProcess.Kill();
while (!myProcess.HasExited)
{
Thread.Sleep(1000);
}
Và điều này tiếp tục vô thời hạn. Cấp, tôi phải thay đổi mã này để ngừng chờ đợi cuối cùng, nhưng tôi tò mò là tại sao HasExited vẫn trả về sai lầm khi quá trình này dường như đã loại bỏ bản đồ để nói.
Đúng vậy, tôi đã chuyển hướng đầu ra tiêu chuẩn. Tôi chọn để đặt Kill và WaitForExit (1000) trong một vòng lặp thử lại ba lần mặc dù. Tôi không thể chờ đợi mãi mãi như bài viết MSDN gợi ý. – Jeremy
Tôi cũng tự hỏi nếu điều này có nghĩa là nó có thể cho một quá trình chấm dứt và vẫn có dòng đầu ra tiêu chuẩn của nó mở. Hay bài báo có nghĩa là trình streamrea cục bộ của tôi đã không nhận được thông báo đóng cửa mặc dù quá trình nguồn của nó đã thoát. – Jeremy