我已经创建了如下所示的异步方法
System.Threading.Tasks.Task.Factory.StartNew(
() => AddAttachment(document, docId, user)).ContinueWith(
task => BackUpQueuesMail(task.Exception, information, list),
TaskContinuationOptions.OnlyOnFaulted);
我需要在 AddAttachment() 方法成功处理后执行回调函数。我怎么可能呢?
最佳答案
你需要提取出AddAttachment任务,然后你可以使用continuation tasks指定在主任务失败时执行什么任务,以及在主任务成功完成时执行什么任务。
在此示例中,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);
关于c# - 如何在执行异步方法后调用成功的回调函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14050967/