异步获取和设置

MBZ*_*MBZ 5 c# asynchronous properties

是否可以使用async getset方法创建属性?

如果有,怎么样?
如果没有,我应该如何调用异步方法getset正确的?

Jon*_*eet 8

不可以.从C#5规范的第10.15节开始:

使用async修饰符的方法(第10.6节)或匿名函数(第7.15节)称为异步函数.通常,术语async用于描述具有异步修饰符的任何类型的函数.

因此,只有方法,lambda表达式和匿名方法才能使用async修饰符.

就个人而言,我认为拥有这样的房产有点奇怪,特别是因为房产必须返回Task<T>而不是T.一个属性通常应该"感觉"非常轻量级 - 这实际上并不适合异步.

  • 为了尝试使用WPF,XAML,Windows应用商店应用等编写响应式GUI,任何人都可以支持异步属性.MS添加异步/等待的一个重要原因是释放GUI线程,并且由于大多数GUI绑定使用属性,缺乏异步/等待支持在我看来是瘫痪的. (4认同)