Yielding Control
Now that you know how custom awaiter
s work, and how they interact with the compiler-generated code, let’s take a look at one more atypical awaiter
that ships with the .NET Framework itself. On the Task
class, you can find a static method called Yield
, defined as follows:
public static YieldAwaitable Yield();
As the name of the return type implies, the result of calling Yield
can be awaited. The effect of doing this is pausing the current asynchronous method, effectively yielding control and allowing for other work to be run before continuing the current method’s execution. Internally, this is simply accomplished by a custom awaiter
whose IsCompleted
property always returns false. Upon the rendezvous of the compiler-generated ...
Get C# 5.0 Unleashed now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.