在 Form1 的顶部,我做了:
private Process zipFileDirectoryProcess;
在构造函数中我做了:
zipFileDirectoryProcess = new Process();
zipFileDirectoryProcess.StartInfo.FileName = "explorer.exe";
zipFileDirectoryProcess.StartInfo.CreateNoWindow = true;
zipFileDirectoryProcess.EnableRaisingEvents = true;
zipFileDirectoryProcess.Exited += new EventHandler(zipFileDirectoryProcess_Exited);
然后我有一个方法,我从按钮单击事件中调用它:
private void Compress()
{
zipFileDirectoryProcess.StartInfo.Arguments = zipFileDirectoryProcess.StartInfo.Arguments = "/select," + Path.GetFullPath(t);
zipFileDirectoryProcess.Start();
zipFileDirectoryProcess.WaitForExit();
this.TopMost = true;
}
然后在底部的 Exited 事件中:
private void zipFileDirectoryProcess_Exited(object sender, EventArgs e)
{
this.BeginInvoke(new MethodInvoker(delegate()
{
this.TopMost = false;
}));
}
我想要做的只是当我在方法中启动它后关闭进程窗口时,只有关闭窗口/进程然后执行 Exited 事件。
问题是,一旦进程在 2-3 秒后开始,它会自动跳转到 Exited 事件。
我该如何解决?尝试过的例子无法弄清楚。试图添加这一行:
zipFileDirectoryProcess.WaitForExit();
但是没有效果。