mis*_*ish 3 c# asynchronous async-await xamarin.forms .net-core
我有一个问题,想知道异步函数需要遵循的最佳实践。我的视图模型中有两个函数,它们是从属性的设置器中调用的。这两个函数是 async void,但我们希望将它们转换为 async of task,因为 async void 是不良代码的味道。但 setter 属性不允许我们等待。所以我想知道我应该从哪里调用这两个函数,我们也不想从构造函数中执行此操作,因为我们也不能等待函数,而构造函数不是用于此目的。我只想知道避免从属性调用异步任务函数的最佳实践。我想设置并填充属性更改的数据,因此我们从属性调用异步函数。
我只想知道避免从属性调用异步任务函数的最佳实践。
简单的; 不。考虑一个方法而不是属性,而不是属性 getter/setter实际上只是遵循约定的常规方法- 并且该约定不适用于异步代码。
所以:而不是:
public string Something
{
get => ???
set => ???
}
Run Code Online (Sandbox Code Playgroud)
考虑:
public [async] Task<string> GetSomething() => // whatever you need here
public [async] Task SetSomething(string value) => // whatever you need here
Run Code Online (Sandbox Code Playgroud)