123456789101112131415161718192021 |
- namespace SinMaiLauncher.ChildProcessHolder;
- internal class ChildProcessStateBagForWin(ChildProcessKind kind, IProcessStartInfo startInfo) : ChildProcessStateBag(kind, startInfo)
- {
- public nint? HWndMainWindow => MainWindowHWnd;
- protected override async Task<bool> CheckReadyAsync()
- {
- Status = ChildProcessStatus.WaitingReady;
- if (await WaitForInputIdleAsync(TimeSpan.FromSeconds(5)) == false) return false;
- return true;
- }
- public override async Task StopAsync(TimeSpan timeout)
- {
- Status = ChildProcessStatus.Stopping;
- CloseMainForm();
- await Task.WhenAny(Task.Delay(timeout), WaitForExitAsync());
- await base.StopAsync(timeout);
- }
- }
|