Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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# Xamarin表单中页面构造函数中的服务调用_C#_Xamarin_Xamarin.forms - Fatal编程技术网

C# Xamarin表单中页面构造函数中的服务调用

C# Xamarin表单中页面构造函数中的服务调用,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,我只想在加载页面后进行服务调用,但是页面构造函数不支持异步等待模式,因此我必须在出现一些检查时进行相同的操作,以便只进行一次服务调用 如果我只想打一次服务电话,最好的做法是什么。您可以使用任务来完成这项工作 见: 您可以使用任务来完成此工作 见: Lazy是一个选项吗?如果服务已经被调用,您可以在设置中存储一些值,并在出现时签入OnAppearing。您还可以在App.xaml.cs中调用该服务,以便只调用一次。Lazy是一个选项吗?您可以在设置中存储一些值,如果该服务已被调用,则在出现时签入o

我只想在加载页面后进行服务调用,但是页面构造函数不支持异步等待模式,因此我必须在出现一些检查时进行相同的操作,以便只进行一次服务调用


如果我只想打一次服务电话,最好的做法是什么。

您可以使用任务来完成这项工作

见:


您可以使用任务来完成此工作

见:


Lazy
是一个选项吗?如果服务已经被调用,您可以在设置中存储一些
,并在出现时签入
<每次导航到特定页面时,都会执行代码>OnAppearing
。您还可以在
App.xaml.cs
中调用该服务,以便只调用一次。
Lazy
是一个选项吗?您可以在设置中存储一些
,如果该服务已被调用,则在出现时签入
on
<每次导航到特定页面时,都会执行代码>OnAppearing。您还可以在
App.xaml.cs
中调用该服务,以便只调用一次。方法应该是异步的,才能使用该任务。太奇怪了。。。无论什么请参阅编辑后的答案@AshishKumar。您必须添加wait Initialize(),然后依次将其设置为waitiableno。正如你所说,你不能在构造函数中等待。。。你试过我建议的方法吗?(对不起我的英语不好)现在我明白了。。。我经常使用它,但在我的视图模型中,而不是在页面中。很抱歉。方法应该是异步的才能使用任务。太奇怪了。。。无论什么请参阅编辑后的答案@AshishKumar。您必须添加wait Initialize(),然后依次将其设置为waitiableno。正如你所说,你不能在构造函数中等待。。。你试过我建议的方法吗?(对不起我的英语不好)现在我明白了。。。我经常使用它,但在我的视图模型中,而不是在页面中。我很抱歉。
public MyClass()
{
    ... // Your stuff goes here
    Initialize();
}

private async void Initialize()
{
    Task.Run(async () => 
    {
        await ServerObjectReference.AsyncMethod();
    });
}