我需要在我的WPF项目下运行外部exe“ embed.exe ”,
这是一个片段
ProcessStartInfo processInf = new ProcessStartInfo("embed.exe");
processInf.Arguments = string.Format(@"Some arguments");
processInf.WindowStyle = ProcessWindowStyle.Hidden;
Process run = Process.Start(processInf);
我的问题是它阻止了我的用户界面,
有没有办法使用线程或任何不会阻止UI的代码包含 embed.exe ?
答案 0 :(得分:1)
行,
尝试将您之前的代码段放入方法中,然后创建一个新线程并将其初始化为该方法。
这里是如何制作的 //磨练代码
private void EmbedMethod()
{
ProcessStartInfo processInf = new ProcessStartInfo("embed.exe");
processInf.Arguments = string.Format(@"Some arguments");
processInf.WindowStyle = ProcessWindowStyle.Hidden;
Process run = Process.Start(processInf);
}
Thread embedThread=new Thread(EmbedMethod);
embedThread.start();
答案 1 :(得分:0)
您开始的过程是在自己的线程上运行,而不是您的应用程序用来启动它的线程。
要终止您的embed.exe进程,您需要保持对已启动进程的引用。在这种情况下运行变量。要终止进程调用: run.CloseMainWindow()或run.Kill()。 Kill强制终止进程,而CloseMainWindow仅请求终止。