2011-09-08 7 views
8

için geri arama işlevi nasıl verilir Dispatcher.BeginInvoke ile bittiğinde bazı post prose işlemlerini yapmak için geri arama işlevini kullanmam gerekir. Ancak bir geri arama kabul etmek için Dispatcher.BeginInvoke herhangi bir parametre bulamadık. Dispatcher.BeginInvoke bir geri arama işlevi vermek mümkün mü?Dispatcher.BeginInvoke

cevap

10

BeginInvoke tarafından döndürülen DispatcherOperation nesnesinin üzerinde bir Completed etkinliği var. tamamlandıktan sonra işlemleri gerçekleştirmek için bu abone:

abone önce de sonra tamamlanması için Status özelliğini test böylece operasyon, tamamlayacak bir şans var
var dispatcherOp = Dispatcher.BeginInvoke(/* your method here */); 
dispatcherOp.Completed += (s, e) => { /* callback code here */ }; 

:

if (dispatcherOp.Status == DispatcherOperationStatus.Completed) { ... } 

Bu mümkün olur Ayrıca, iptal edilmesi gereken işlem de Aborted için işleme/test yapılması da uygun olabilir.

+3

Bunun Windows Phone 7, 8 ve Silverlight :('da bulunmadığını unutmayın. –