Awaiter(GetAwaiter)和ContinueWith有什么区别

Bre*_*ias 5 .net multithreading .net-4.0

在.net 4.0中,我经常使用Task.ContinueWith.但后来我发现"task.GetAwaiter()"似乎有着相同的目的.

有什么不同?

Ree*_*sey 8

如果你的目标是.NET 4,你可以使用ContinueWith.

通常,您通常不会使用task.GetAwaiter().此方法的存在是为了支持await关键字,而不是.NET 4的一部分(在4.5中添加).这不是您通常直接使用的东西,而是将其作为async方法的一部分来编写.