【发布时间】:2014-01-13 09:24:36
【问题描述】:
当我在 C# 上玩任务时,我想知道使用 GetAwaiter().OnCompleted() 和回调有什么区别
案例 1: task1.GetAwaiter().OnCompleted()
Task task1 = new Task(() =>
{
//Do Work_1 here
});
task1.GetAwaiter().OnCompleted(() =>
{
//Do something here where Work_1 Completed
});
task1.Start();
案例 2: 回调
await Task2(() =>
{
//CallBack
});
private async Task Task2(Action callBack)
{
//do Work_2 here
await Task.Run(callBack);
}
我想了解这一点,但我认为我遗漏了一些东西。
【问题讨论】:
-
我的一个观察是 MSDN 对
GetAwaiter()方法的评论:This method is intended for compiler user rather than use directly in code.
标签: c# .net asynchronous async-await multitasking