Sometimes, C# async methods don't actually run asynchronously. You can save memory allocation using a ValueTask.
Source code available at: https://github.com/JasperKent/ValueTask
Topics include:
- Tasks, async and await
- Caching results of async methods
- Stack vs heap allocation
- Mocking ValueTasks