Tôi đang viết một đoạn mã C# khởi chạy trình cài đặt và chờ nó trở lại trước khi tiếp tục với các công cụ khác.C# Phát hiện các quá trình sinh sản
Tôi đang gặp sự cố với một số trình cài đặt nhất định sinh ra các quy trình khác với quy trình gốc trở về trước khi quá trình cài đặt hoàn tất. Có cách nào mà tôi có thể đợi cho đến khi tất cả các quy trình đã kết thúc không?
Để làm rõ đây là kịch bản tôi đang gặp rắc rối với:
- Launch Installer1
- Installer1 spawns/ra mắt một trình cài đặt (Installer2)
- Installer 1 lợi nhuận
- Application nghĩ cài đặt có đã hoàn tất nhưng Installer2 vẫn đang chạy. Điều này gây ra các vấn đề với quy trình làm việc trong ứng dụng.
Dưới đây là đoạn code tôi đang sử dụng tại thời điểm này:
// launch installer
Process process = windowsApplicationLauncher.LaunchApplication(_localFilePath);
// wait for process to return
do
{
if (!process.HasExited)
{
}
}
while (!process.WaitForExit(1000));
if (process.ExitCode == 0)
{
_fileService.MoveFile(_localFilePath, _postInstallFilePath);
_notification.SetComplete(false);
return true;
}
return false;
Bạn có sở hữu các quy trình sinh sản không? Ví dụ. bạn có thể sửa đổi Installer2 nếu điều đó sẽ giúp bạn phát hiện hoàn thành dễ dàng hơn không? Hoặc là Installer2 được cung cấp bởi người khác, hoặc bạn thậm chí không biết những gì các quá trình bổ sung có thể được sinh ra và cần phải xử lý các quá trình sinh sản tùy ý? – itowlson
Chúng tôi sở hữu trình cài đặt cụ thể được đề cập. Tuy nhiên chúng tôi cũng muốn có thể xử lý các quá trình sinh sản tùy ý. – tjjjohnson