Tôi cần sử dụng chức năng gọi lại để thực hiện một số tác vụ xử lý bài đăng khi hàm bắt đầu với kết thúc Dispatcher.BeginInvoke. Tuy nhiên tôi không thể tìm thấy bất kỳ tham số trong Dispatcher.BeginInvoke để chấp nhận một cuộc gọi lại. Có thể cung cấp chức năng gọi lại cho Dispatcher.BeginInvoke không?cách gọi hàm gọi lại cho Dispatcher.BeginInvoke
8
A
Trả lời
10
Đối tượng DispatcherOperation
được trả lại bởi BeginInvoke
có sự kiện Completed
trên đó. Theo dõi mà để thực hiện các hoạt động sau khi hoàn thành:
var dispatcherOp = Dispatcher.BeginInvoke(/* your method here */);
dispatcherOp.Completed += (s, e) => { /* callback code here */ };
Có một cơ hội hoạt động sẽ hoàn thành trước khi bạn đăng ký, vì vậy bạn có thể kiểm tra Status
bất động sản sẽ hoàn thành sau cũng như:
if (dispatcherOp.Status == DispatcherOperationStatus.Completed) { ... }
Có thể cho các hoạt động được hủy bỏ là tốt, do đó, xử lý/thử nghiệm cho Aborted
cũng có thể thích hợp.
Lưu ý rằng tính năng này không khả dụng trên Windows Phone 7, 8 và Silverlight :( –