我一直在研究一个调用外部可执行文件(在我的情况下为 ffmpeg)的小块然后我编写了一个测试并在调试模式下使用了测试运行器,现在如果我停止调试(终止)它仍然运行 ffmpeg。我试图终止终结器中的进程并使用 IDisposable - 它仍然运行。我怎样才能确保进程永远不会像那样离开,如果调用者死亡或失败或以任何方式停止,ffmpeg 可执行文件保证会被杀死。
我像往常一样运行这个过程(没什么特别的)
var processInfo = new ProcessStartInfo(ffmpegPath)
{
UseShellExecute = false,
Arguments = arguments,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = true,
};
using (var ffmpegProc = new Process())
{
ffmpegProc.EnableRaisingEvents = true;
ffmpegProc.StartInfo = processInfo;
ffmpegProc.Start();
ffmpegProc.WaitForExit();
}