8
當Dispatcher.BeginInvoke函數啓動完成時,我需要使用回調函數來執行一些後期處理任務。但是,我無法在Dispatcher.BeginInvoke中找到任何參數來接受回調。是否可以給Dispatcher.BeginInvoke一個回調函數?如何將回調函數提供給Dispatcher.BeginInvoke
當Dispatcher.BeginInvoke函數啓動完成時,我需要使用回調函數來執行一些後期處理任務。但是,我無法在Dispatcher.BeginInvoke中找到任何參數來接受回調。是否可以給Dispatcher.BeginInvoke一個回調函數?如何將回調函數提供給Dispatcher.BeginInvoke
由BeginInvoke
返回的DispatcherOperation
對象上有一個Completed
事件。訂閱該完成後執行操作:
var dispatcherOp = Dispatcher.BeginInvoke(/* your method here */);
dispatcherOp.Completed += (s, e) => { /* callback code here */ };
有一個機會,你訂閱操作前將完成,所以你可以後以及測試Status
物業完成日期:
if (dispatcherOp.Status == DispatcherOperationStatus.Completed) { ... }
這是可能的該操作也將被中止,所以處理/測試Aborted
也可能是適當的。
請注意,這不適用於Windows Phone 7,8和Silverlight :( –