AsyncETTaskMethodBuilder.OnCompleted uses the Action closure to prevent the MoveNextRunner from being recycled, and uses the movenext delegation to avoid the GC problem of builder. OnCompleted (machine. MoveNext). Please ask whether there is such a problem: AsyncETTaskMethodBuilder is statically generated code, and the delegation to create static methods is 0GC Alloc, but GCAlloc is generated in the modified implementation method, which has a certain possibility of reverse optimization.
The following is Chatgpt's explanation of AsyncTaskBuilder. OnCompleted (Action continuation):

AsyncETTaskMethodBuilder.OnCompleted uses the Action closure to prevent the MoveNextRunner from being recycled, and uses the movenext delegation to avoid the GC problem of builder. OnCompleted (machine. MoveNext). Please ask whether there is such a problem: AsyncETTaskMethodBuilder is statically generated code, and the delegation to create static methods is 0GC Alloc, but GCAlloc is generated in the modified implementation method, which has a certain possibility of reverse optimization.

The following is Chatgpt's explanation of AsyncTaskBuilder. OnCompleted (Action continuation):