私はC#の新機能ですので、疑問に思うかもしれません。私は時々ffmpegを実行する必要があるアプリケーションを開発しています。あなたが推測するように、このffmpegプロセスは、ホストアプリケーションが閉じられたときに終了しなければなりません。私はこの作業のために、このようなコードを使用します(それはインターフェースまたはTaskmanでのヴィア - アプリケーションが)C#:プロセスの終了時にプロセスが終了する(タスクマンで)
AppDomain.CurrentDomain.ProcessExit += new EventHandler(OnProcessExit);
private void OnProcessExit(object sender, EventArgs e)
{
proc.Kill();
}
アプリが正しく閉じられているときに、正常に動作します。問題は、(Taskman - Processesを使用して)プログラムのプロセスが終了した場合、OnProcessExitイベントがトリガされないことです。私が知る限り、殺害プロセスとクローズプログラムのアクションは低レベルでは同じではありませんが、殺害プロセスはコマンドであり、C#ツールで処理することができます。ですから、この場合子プロセスを閉じることは可能でしょうか?
[この質問](http://stackoverflow.com/questions/3342941/kill-child-process-when-parent-process-is-killed?rq=1)会談親は殺される。 –
ありがとう、スコットミラー、[this] [1] 方法は私の問題を解決するために必要です。 [1]:http://stackoverflow.com/questions/3342941/kill-child-process-when-parent-process-is-killed?rq=1 – JustLogin
いいえ、それは悪い考えです。ユーザーが何か不合理なことをしたときに合理的なことをしようとするのは無駄な努力です。なぜあなたはこのようなあなたのプログラムを殺すことにしたのか分かりません。しかし、あなたのプログラムはまだ正常に動作しているわけではないと通常仮定します。あなたがffmpegを殺すために何をしようとしていても、良い結果になるのは、それに応じてスリムです。ジョブオブジェクトは解決策でもなく、Vistaでひどく壊れてしまった。今は2つの問題があります。 –