In this chapter, we looked at the C# language infrastructure that supports asynchronous calls. We covered the new C# keywords, async
and await
, and how we can use Task Parallel Library with the new C# syntax. We learned how C# generates code and creates a state machine that represents an asynchronous operation, and we implemented an analogue solution with the help of iterator methods and the yield
keyword. Besides this, we studied additional Task Parallel Library features and looked at how we can use await
with any custom type.
In the next chapter, we will learn about data structures that are built for concurrency and common algorithms that rely on them.