Как узнать, что преобразование Directshow.net выполнено?

прямо сейчас у меня есть график Directshow.net, который берет видеофайл и кодирует его в файл, однако он просто продолжает работать

int x = program.Run() 

в DirectShow.net, и я хочу, чтобы программа закрылась, когда полное преобразование будет выполнено, вместо того, чтобы мне приходилось гадать.

как я могу узнать, сделано ли кодирование программно?


person Grant    schedule 10.06.2011    source источник
comment
Если у вас есть переменная mediaEvent, вы можете проверить функцию WaitForCompletion, чтобы увидеть, выполнен ли код. если результат ожидания завершения (в данном случае gh) не равен 0, он выполняется, если он равен 0, то все готово. const int E_Abort = снято ((int) 0x80004004); код события evCode; int gh = mediaEvent.WaitForCompletion(1000, out evCode); DsROTEntry rot = новый DsROTEntry (фильтр); в то время как (gh == E_Abort) { System.Windows.Forms.Application.DoEvents(); gh = this.mediaEvent.WaitForCompletion(1000, out evCode); }   -  person Grant    schedule 11.06.2011


Ответы (1)


Если у вас есть переменная mediaEvent, вы можете проверить функцию WaitForCompletion, чтобы увидеть, выполнен ли код. если результат ожидания завершения (в данном случае gh) не равен 0, он выполняется, если он равен 0, то все готово.

const int E_Abort = unchecked((int)0x80004004); 
EventCode evCode; 
int gh = mediaEvent.WaitForCompletion(1000, out evCode); 
DsROTEntry rot = new DsROTEntry(filter); 
while (gh == E_Abort) 
{ System.Windows.Forms.Application.DoEvents(); 
gh = this.mediaEvent.WaitForCompletion(1000, out evCode); }  
person Grant    schedule 15.06.2011