BackgroundTask deferral.Complete

时间:2013-07-03 15:05:01

标签: c# microsoft-metro

我的问题是,deferral.complete()方法究竟是什么,这个方法调用事件task.Compledet,还是有办法从我班BackgroundTaskSyncer调用一个方法{ {1}} ???? 当我运行Programm时,我将从BackgroundTaskSyncer执行Run方法,但在其他类中没有任何内容吗?

BackgroundSyncer

1 个答案:

答案 0 :(得分:4)

创建延期以解决async void事件和方法的问题。例如,如果在后台操作期间必须await,则可以使用async void Run方法。但问题是运行时不知道你实际上有更多的工作要做。

因此,延迟是一个可用于通知运行时的对象“我现在真的已经完成了”。只有在您需要await时才需要推迟。

我有blog post that goes into "asynchronous event handlers" and deferrals in more detail