Объект DispatcherOperation
, возвращаемый BeginInvoke
, имеет событие Completed
. Подписаться на выполнение операций после завершения:
var dispatcherOp = Dispatcher.BeginInvoke( /* your method here */);
dispatcherOp.Completed += (s, e) => { /* callback code here */ };
Существует вероятность того, что операция будет завершена до подписки, поэтому вы также можете проверить свойство Status
на предмет завершения после:
if (dispatcherOp.Status == DispatcherOperationStatus.Completed) { ... }
Возможно, что операция также может быть прервана, поэтому обработка / тестирование для Aborted
также могут быть уместными.