2011-09-08 17 views
0

デリゲートが処理を終了すると、DispatcherOperationのCompletedイベントに登録しています。 Completedイベントハンドラ内でデリゲートから返された値を取得する方法を教えてください。 Completedイベントハンドラ内の戻り値を受け入れることによってメインスレッドをブロックしないようにすることは、可能であると思います。コールバック内のDispatcherOperationの戻り値を取得する方法

DispatcherOperation dispOp = this.Dispatcher.BeginInvoke(balUpdater, 
    GlobalParams._sessionObject.UserInfo.CardData); 
dispOp.Completed += new EventHandler(dispOp_Completed); 

void dispOp_Completed(object sender, EventArgs e) 
{ 
    // accept return value of balUpdater here. 
} 

答えて

0

私はsenderパラメータは恐らくDispatcherOperationですが、ない場合は、あなただけのデリゲートでDispatcherOperationをキャプチャすることができますねだろう:

DispatcherOperation dispOp = this.Dispatcher.BeginInvoke(balUpdater, 
    GlobalParams._sessionObject.UserInfo.CardData); 
dispOp.Completed += (sender, args) => HandleCompletion(dispOp); 

... 


private void HandleCompletion(DispatcherOperation operation) 
{ 
    object result = operation.Result; 
    // Use the result here 
} 
関連する問題