等待setter属性的异步函数

时间:2016-01-07 08:01:25

标签: c# windows async-await

我需要等待属性setter方法的异步函数。

public String testFunc()
{
get
{

}
set
{
    //Await Call to the async func <asyncFunc()>

}
}

我知道我们不应该制作异步属性,所以最佳方法是什么。

3 个答案:

答案 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;
}