我需要等待属性setter方法的异步函数。
public String testFunc()
{
get
{
}
set
{
//Await Call to the async func <asyncFunc()>
}
}
我知道我们不应该制作异步属性,所以最佳方法是什么。
答案 0 :(得分:7)
您不能创建异步属性,并且您不应该想要 - 属性意味着快速,非阻塞操作。如果您需要执行长时间运行的活动,正如您想要启动异步操作并等待它,请不要将其作为属性。
删除setter并改为创建方法。
答案 1 :(得分:2)
使用
public bool SomeMethod
{
get { /* some code */ }
set
{
AsyncMethod().Wait();
}
}
public async Task AsyncMethod() {}
[编辑]
答案 2 :(得分:0)
您不能将async
函数与属性一起使用
替代可以使用Result
属性
public string UserInfo
{
get => GetItemAsync().Result;
}