[英]Process.Kill() is causing fatal error in Winform application
今天,我想在窗體內打開應用程序,但這會導致錯誤。
if (File.Exists(ts3))
{
Process p = Process.Start(ts3);
Thread.Sleep(2000);
SetParent(p.MainWindowHandle, panel1.Handle);
}
foreach (var process in Process.GetProcessesByName(ts3check))
{
process.Kill();
}
Thread.Sleep(500);
Process p = Process.Start(ts3);
Thread.Sleep(2000);
SetParent(p.MainWindowHandle, panel1.Handle);
它應該檢查該應用程序是否已打開(如果已打開),請殺死它並在我的表單中打開一個新應用程序。 但是,當我嘗試以表單形式打開進程時,它將導致致命錯誤,並使我的表單停止工作。 我正在看它大約半個小時,但看不到它。
編輯:如果尚未打開應用程序,則該應用程序有效,但如果已打開,它將執行此部分代碼並產生錯誤
foreach (var process in Process.GetProcessesByName(ts3check))
{
process.Kill();
}
Thread.Sleep(500);
Process p = Process.Start(ts3);
Thread.Sleep(2000);
SetParent(p.MainWindowHandle, panel1.Handle);
嘗試將Thread.Sleep(2000)
更改為p.WaitForInputIdle()
,您可能還想看看在p.WaitForInputIdle()
上的WinForm項目中托管EXE應用程序 。 有人創建了一個控件來執行您想要的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.