1

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をブロックしていることです。

UIをブロックしないスレッドまたはコードを使用してembed.exeを含める方法はありますか?

4

2 に答える 2

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();
于 2013-02-16T17:26:57.233 に答える
0

開始したプロセスは、アプリケーションが開始に使用したスレッドではなく、独自のスレッドで実行されています。

Embed.exe プロセスを終了するには、開始されたプロセスへの参照を保持する必要があります。この場合、実行変数。プロセスを終了するには、run.CloseMainWindow() または run.Kill() を呼び出します。Kill はプロセスの終了を強制しますが、CloseMainWindow は終了を要求するだけです。

于 2013-02-18T02:32:38.793 に答える