If you regularly use the async/await feature in C# (Let’s be honest, who doesn’t), you are probably familiar with Task and Task<T>.
Even more so, if you work with a C# version ≥ C# 8, you might even have worked with ValueTask before.
What do these have in common? Pretty straightforward, you can await them to control the flow of your applications logic. You might be inclined to think that this is…