我使用 LoadState 方法作为示例,但这通常可以看作是异步编程的场景。
LoadState
andSaveState
方法实现通常具有以下签名:
public override void LoadState(..)
public async override void LoadState(..)
您可以选择添加 async 关键字,具体取决于您是否要等待加载某些数据。LoadState
但是由于is的返回类型void
,LoadState 方法本身不能被等待,而是被触发为“一劳永逸”。这通常很好,因为它允许响应式 UI,同时能够在数据加载逻辑中使用 async/await。
在某些情况下,我想等待异步 LoadState 方法。但是,如果我将签名更改Task
为 void 而不是 void,我所有不使用异步逻辑的实现都必须返回 null(这似乎不是最好的解决方案)。是否有另一种可能的解决方案,其中可以等待一些方法调用并且大多数保持触发并忘记(默认情况下)?