[英]How to call a Successful Callback function after executing an Asynchronous method?
我創建了一個像下面這樣的異步方法
System.Threading.Tasks.Task.Factory.StartNew(
() => AddAttachment(document, docId, user)).ContinueWith(
task => BackUpQueuesMail(task.Exception, information, list),
TaskContinuationOptions.OnlyOnFaulted);
我需要在AddAttachment()方法成功處理后執行回調函數。 我怎么能這樣呢?
您需要提取AddAttachment任務,然后您可以使用continuation任務來指定主任務失敗時要執行的任務,以及主任務成功完成時要執行的任務。
在這個例子中MethodToRunWhenFinishSuccessfully將運行如果AddAttachment完成,BackUpQueuesMail將情況AddAttachment失敗運行。
var addAttachmentTask = Task.Factory.StartNew(() => AddAttachment(document, docId, user));
addAttachmentTask.ContinueWith(t => MethodToRunWhenFinishSuccessfully(t), TaskContinuationOptions.OnlyOnRanToCompletion);
addAttachmentTask.ContinueWith(t => BackUpQueuesMail(task.Exception, information, list), TaskContinuationOptions.OnlyOnFaulted);
一種方法是:
System.Threading.Tasks.Task.Factory.StartNew(
() => AddAttachment(document, docId, user)).ContinueWith(
task => OnComplete(task), }
TaskContinuationOptions.None);
private void OnComplete(task)
{
if(task.IsFaulted)
{
}
else if(task.IsComplete) {}
}
只需將OnlyOnFaulted
更改為OnlyOnRanToCompletion
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.