如何在Windows手机上的Setter中调用异步方法

时间:2014-10-25 07:12:12

标签: c# windows-phone-8.1

在我绑定到UI的属性的setter方法中,我需要调用异步方法。

public string Property
{
   set {
        _property = value;

        AMethodAsync();
   }
}

但是我收到一个编译器警告,说'在调用完成之前,'此调用方法的执行仍在继续'。

如何修复此编译器警告?

我读了这个帖子, How to call an async method from a getter or setter? 但Windows Phone上没有Dispatcher。

谢谢。

1 个答案:

答案 0 :(得分:1)

我将您的问题解释为如何禁用警告。您可以在此属性中暂时禁用此特定警告,如下所示:

#pragma warning disable 4014
public string Property
{
    set
    {
        _property = value;
        AMethodAsync();
    }
}
#pragma warning restore 4014

这对于在代码段内静音警告很有用。请记住,所有这一切都会阻止编译器生成警告。通常,如果你这样做,这意味着你有充分的理由首先忽略警告。


使警告静音的另一种方法是将任务对象分配给如下变量:

public string Property
{
    set
    {
        _property = value;
        var task = AMethodAsync();
    }
}