This article shows in a simple way the foundation of libraries like DurableTask and its descendant Azure Durable Functions. It starts with the history of exception based flow control and ends by showing how Task-based API can be used to provide a similar interruptible flow with no abusive exception usage. Dark ages of exception-driven programming … Continue reading Unexceptional non-blocking task-based flow control in .NET
Why are they still working on the whole async-await thing? What is Task, Async Await, ValueTask, IValueTaskSource ? How to keep your sanity in modern .NET world?
TL;DR This is a follow up post to Async pump for better throughput in Azure. Please read the first before moving forward. Feedback I've been given a lot of feedback about my Async pump post. In a few cases this blog post from Ayende was quoted as it describes exactly the same approach. You can … Continue reading Async programming model
This post is followed up by https://blog.scooletz.com/2017/02/20/async-programming-model TL;DR Introducing async-await has changed a lot. Now, with some compiler's help we're able to squeeze out more throughput from our machines, which may lower costs and increase throughput. In this blog post we'll push the boundaries even further by questioning the need of immediate awaiting on a … Continue reading Async pump for better throughput in Azure
In the last post I've shown some optimizations one can apply to reduce the overhead on creating asynchronous state machines. Let's dive into the async world again and consider helper methods provided by the Task class, especially Task.WhenAll. The method works in a following way. It accepts an array of tasks and returns a task … Continue reading Task.WhenAll tests
Whenever you use async/await pair, the compiler performs a lot of work creating a class that handles the coordination of code execution. The created (and instantiated) class implements an interface called IAsyncStateMachine and captures all the needed context to move on with the work. Effectively, any async method using await will generate such an object. … Continue reading Rise of the IAsyncStateMachines