C# 如何在执行异步方法后调用成功的回调函数?
我创建了一个异步方法,如下所示C# 如何在执行异步方法后调用成功的回调函数?,c#,.net,asynchronous,C#,.net,Asynchronous,我创建了一个异步方法,如下所示 System.Threading.Tasks.Task.Factory.StartNew( () => AddAttachment(document, docId, user)).ContinueWith( task => BackUpQueuesMail(task.Exception
System.Threading.Tasks.Task.Factory.StartNew(
() => AddAttachment(document, docId, user)).ContinueWith(
task => BackUpQueuesMail(task.Exception, information, list),
TaskContinuationOptions.OnlyOnFaulted);
我需要在AddAttachment()方法处理成功后执行回调函数。我怎样才能做到这一点呢?只需将
OnlyOnFaulted
更改为OnlyOnRanToCompletion
一种方法是:
您需要提取AddAttachment任务,然后可以使用指定如果主任务失败,要执行的任务,以及如果主任务成功完成,要执行的任务 在此示例中,如果AddAttachment已完成,则将运行MethodUnwhenFinishSuccessfully,如果AddAttachment失败,则将运行BackUpQueuesMail
你不需要延迟启动。使用StartNew即可。
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) {}
}
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);