C# 如何在WPF C中创建真正独立的流程#

C# 如何在WPF C中创建真正独立的流程#,c#,wpf,process,wpf-controls,C#,Wpf,Process,Wpf Controls,我知道我们可以使用Process.Start静态方法来创建独立的进程,但我面临的问题是,每当我关闭我的原始程序时,它就会关闭我创建的进程 我签入任务管理器/process explorer,发现该流程仍在层次结构中。因此,我尝试使用cmd.exe调用它(就像一个中间进程),这最终使我的目标程序从进程树中分离出来。但收尾行为根本没有改变 我尝试在程序中同时使用Application.Current.Shutdown和this.Close()来关闭我的原始文件,但两者的行为相同。看起来我的应用程序正

我知道我们可以使用
Process.Start
静态方法来创建独立的进程,但我面临的问题是,每当我关闭我的原始程序时,它就会关闭我创建的进程

我签入任务管理器/process explorer,发现该流程仍在层次结构中。因此,我尝试使用cmd.exe调用它(就像一个中间进程),这最终使我的目标程序从进程树中分离出来。但收尾行为根本没有改变

我尝试在程序中同时使用
Application.Current.Shutdown
this.Close()
来关闭我的原始文件,但两者的行为相同。看起来我的应用程序正在跟踪生成的所有进程,但我还没有编写任何类似的东西,并在关闭时将它们杀死

知道为什么会这样吗?我正在一个事件处理程序方法中创建一个用于按钮单击的进程,这可能是原因吗?它可以用Process类修复,还是我需要使用一些较低级别的东西

用于流程创建的代码:

try
{
   ProcessStartInfo rn = new ProcessStartInfo();
   rn.CreateNoWindow = false;
   rn.UseShellExecute = true;
   rn.FileName = "cmd.exe";
   rn.Arguments = String.Format(" /C start {0} -t:{1} {2}", ExeFile, Pass, User);
   rn.WindowStyle = ProcessWindowStyle.Hidden;
   Process.Start(rn);
}
catch(Exception ec)
{
   MessageBox.Show(String.Format("Unable to Start Client: {0}", ec.Message), "Error Starting Client", MessageBoxButton.OK, MessageBoxImage.Error);

}
Application.Current.Shutdown();
检查命令“cmd.exe/C start ExeFile-t:pass user”是否正常工作。
我想,ExeFile崩溃了。

请看这个问题:谢谢你的回答。我已经通过评论关机方法检查了它是否自行崩溃。没有崩溃。你的操作系统是什么?我在xp和framework 4上测试了它,没有问题。我使用Win7 HP 64位。您是否将代码放入事件处理程序中?我在一个按钮点击事件手柄中使用了它是的。让我在64位win7I上试试。我用win7 64位和framework 4测试了它,没有发现问题。