See https://github.com/dotnet/docs/issues/24950#issuecomment-872541399 These are advanced scenarios that can improve performance in specialized scenarios. Begin by describing the scenarios for `Task`, `Task<T>` and `ValueTask<T>` using their default builders. The next section should describe how to avoid some allocations by using the pooling async method builders that will be part of .NET 6.0. Finally, a section can describe how you would write your own custom async methodbuilder.