C# 泛型调用:AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted 和 Start
C# 泛型调用:AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted 和 Start
以下代码展示了如何使用泛型调用 System.Runtime.CompilerServices.AsyncVoidMethodBuilder 的 AwaitUnsafeOnCompleted 和 Start 方法:
示例代码:
// AwaitUnsafeOnCompleted 的泛型调用
System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter, Skillx.Controls.Headpic/<GetPictureFromServerAsync>d__13>(ref System.Runtime.CompilerServices.TaskAwaiter awaiter, ref Skillx.Controls.Headpic/<GetPictureFromServerAsync>d__13 stateMachine);
// Start 的泛型调用
System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start<Skillx.Controls.Headpic/<GetPictureFromServerAsync>d__13>(ref Skillx.Controls.Headpic/<GetPictureFromServerAsync>d__13 stateMachine);
解释:
- 泛型调用可以使用尖括号
<T>来指定泛型类型参数。 - 在以上代码中,
Skillx.Controls.Headpic/<GetPictureFromServerAsync>d__13代表一个状态机类型。 AwaitUnsafeOnCompleted方法需要两个类型参数:第一个是System.Runtime.CompilerServices.TaskAwaiter,第二个是状态机类型。Start方法需要一个类型参数,即状态机类型。
注意事项:
- 泛型调用需要使用
ref关键字传递状态机类型的引用。 - 确保
Skillx.Controls.Headpic/<GetPictureFromServerAsync>d__13是一个有效的状态机类型。
应用场景:
泛型调用 AwaitUnsafeOnCompleted 和 Start 方法通常用于异步方法的实现,可以简化异步操作的代码。
更多信息:
原文地址: https://www.cveoy.top/t/topic/qxzB 著作权归作者所有。请勿转载和采集!