Cmd命令中的FFmpeg之后的事件在C#中完成

我正在使用C#创buildwindows窗体应用程序来pipe理FFMPEG的cmd参数,另外,我正在使用FileWatcher,我的应用程序只要运行后点击button“开始观看”,就会观察是否有新文件落在文件夹中,将打开CMD.exe和参数将使用FFMPEG转换此video文件。 它的工作,但问题是我的C#应用​​程序将命令发送到CMD,这就是它,但我想处理其他任务,如果FFMPEG完成任务删除原始文件? 我怎么能确定在我的应用程序那CMD命令完成,然后开始下一个任务。 这是我的鳕鱼

命名空间WindowsFormsApplication1 {公共部分类Form1:Form {公共Form1(){InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) { FileSystemWatcher watcher = new System.IO.FileSystemWatcher(); watcher.Path = @"MY PATH"; watcher.NotifyFilter = NotifyFilters.LastWrite; watcher.Filter = "*.*"; watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; } private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e) { } private void OnChanged(object source, FileSystemEventArgs e) { DirectoryInfo d = new DirectoryInfo(InPath .Text ); FileInfo[] Files = d.GetFiles("*.*"); string str = ""; foreach (FileInfo file in Files) { str = str + file.Name; } var strout = Path.GetFileNameWithoutExtension(str); string strCmdText; strCmdText = @"/C ffmpeg.exe -i X.mp4 -Vcodec X Xout.mp4"; /// this is just argument example System.Diagnostics.Process.Start("CMD.exe", strCmdText); } private void Form1_Load(object sender, EventArgs e) { } } 

}

这是我将用来启动一个进程,然后等待它的结果

  Process ffmpegProcess = new Process(); ffmpegProcess.StartInfo.FileName = "ffmpeg.exe"; ffmpegProcess.StartInfo.CreateNoWindow = true; ffmpegProcess.StartInfo.Arguments = "-i X.mp4 - Vcodec X Xout.mp4"; ffmpegProcess.Start(); ffmpegProcess.WaitForExit(); if (ffmpegProcess.ExitCode != 0) { }