You’ve played with async and await. You’ve got it. After all, async/await can’t be that hard, right? The keywords are nice and simple … until you start integrating it with the Task Parallel Library. Do you instruct the TPL with long-running task creation options? Can you omit the async/await keywords? How do you limit concurrency and efficiently track multiple running tasks? And what on earth is scheduler hiding? Where do all the allocations come from? In this presentation, I’ll explain how you efficiently integrate async/await with the TPL and provide you with a helmet to make sure your head doesn’t explode!