Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Windows phone上的Setter中调用aync方法_C#_Windows Phone 8.1 - Fatal编程技术网

C# 如何在Windows phone上的Setter中调用aync方法

C# 如何在Windows phone上的Setter中调用aync方法,c#,windows-phone-8.1,C#,Windows Phone 8.1,在绑定到UI的属性的setter方法中,我需要调用一个异步方法 public string Property { set { _property = value; AMethodAsync(); } } 但我收到一条编译器警告,说“在调用完成之前,此调用方法的执行将继续” 如何修复此编译器警告 我读了这条线, 但调度程序在Windows phone上不可用 谢谢。我将您的问题解释为如何禁用警告。您可以暂时禁用此属性中的此特定警告,如下所示: #pr

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

public string Property
{
   set {
        _property = value;

        AMethodAsync();
   }
}
但我收到一条编译器警告,说“在调用完成之前,此调用方法的执行将继续”

如何修复此编译器警告

我读了这条线, 但调度程序在Windows phone上不可用


谢谢。

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

#pragma warning disable 4014
public string Property
{
    set
    {
        _property = value;
        AMethodAsync();
    }
}
#pragma warning restore 4014
public string Property
{
    set
    {
        _property = value;
        var task = AMethodAsync();
    }
}
这有助于使代码段中的警告静音。请记住,这只会阻止编译器生成警告。通常,如果你这样做,这意味着你有一个很好的理由在第一时间忽略警告


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

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

也许你可以将调用(加上
.Wait()
调用)包装成一个函数,并将其粘贴到
线程池中执行。我同意@PhilipPittle。您应该使用System.Threading.ThreadPool.QueueUserWorkItem(委托(对象状态){AMethodAsync();});您能解释一下为什么要在属性中调用异步方法吗?基于此目的,有几种方法可以在不调用setter中的异步方法的情况下实现目标。如果您知道自己在做什么,编译器警告根本不是问题,尽管这样的调用实际上是一种不好的做法。我需要调用async方法,以便将我的属性(在属性的Setter中)中的更改与服务器关联。