【发布时间】:2014-09-16 01:57:53
【问题描述】:
我正在使用下面的代码创建多个进程,并且我想在它们的父级死亡时将它们全部杀死。
Process p = new Process();
p.StartInfo.FileName = @"G:\test.exe";
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.UseShellExecute = true;
p.StartInfo.RedirectStandardOutput = false;
p.Start();
1- 我搜索了很多,但找不到解决方案。 唯一有用的解决方案是:
但我在这一行有错误Win32.CloseHandle(m_handle);
2- 我正在使用 .netframework 3.5,但无法使用任务。
3- 我使用了p.WaitForExit();,但我的主窗体冻结了。
有什么方法可以在不冻结表单的情况下杀死父进程上的进程?
【问题讨论】:
-
感谢您的回复。我看到了那个帖子,但 Win32.CloseHandle(m_handle); 仍然有问题。 . win7下不行
-
使用 SafeHandle 代替。
-
您的意思是“Microsoft.Win32.SafeHandles.SafeFileHandle”?在我的工作域中,我有 win7 和 winxp,(32 位和 64 位)。它们都适用吗?
-
在该帖子的第三条评论中,Alexander Yezutov 写道:“不幸的是,我无法在 64 位模式下运行它。这里我发布了一个基于此的工作示例。”并给出了解决方案:*.com/questions/6266820/…。但我仍然有 Windows 版本和 Win32.CloseHandle(handle); 的问题