在Xamarin Forms中的PCL中以同步方法调用异步函数

伊利亚·斯托伊洛夫

我有这个功能:

public async Task<string> GetData() 
{
    var httpClient = new HttpClient();
    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "My Link Here...");
    var response = await httpClient.SendAsync(request);
    string value = await response.Content.ReadAsStringAsync ();
    return value;
}

它从webapi获取数据,然后我必须使用该数据通过Steema Teechart在Xamarin Forms中构建图表。问题是我无法在构建图表的类中调用函数GetData(),因为要使用数据的方法不同步。我应该如何调用GetData()并使用字符串?

我试过了:

Task<string> s = GetData ();
s.Wait ();
string initialValues = s.Result;

但它会停止我的应用程序,并在一段时间后将其崩溃。

斯蒂芬·克莱里(Stephen Cleary)

问题是我无法在构建图表的类中调用函数GetData(),因为要使用数据的方法不同步。我应该如何调用GetData()并使用字符串?

您创建调用方法async,然后使用await

string initialValues = await GetData();

是的,这意味着您的调用方法还需要返回Task/ Task<T>,这意味着调用方法也应为async,等等。这种“增长”async是完全自然的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Xamarin形式在PCL类中调用Appdelegate函数?

在 Xamarin.Forms 中调用异步 GetDataFromServer 的位置?

在Xamarin中调用JavaScript函数

在内容页面XAMARIN FORMS中调用onresumo()方法

Xamarin.Forms 中的 SQLite-Net-Pcl

在Xamarin.Forms PCL XAML页面中禁用自动完成

Xamarin Forms:PCL 中的 ModernHttpClient 错误处理

如何在Xamarin.Forms PCL Android移动应用程序中修复缺少的方法异常

如何在Xamarin.Forms项目中调用Xamarin.Droid中定义的函数?

Xamarin PCL库中的GetConstructors

如何从 MVVM 中 Xamarin.Forms 中的另一个异步命令内部调用异步命令?

Xamarin Forms Prism调用方法

如何在Xamarin.Android中的按钮上调用异步非lambda函数

通过Xamarin.Forms中的WebView中的Javascript onClick事件调用C#函数

如何在 CustomMapRenderer - xamarin.forms.maps 中将同步方法更改为异步方法?

在C#,Xamarin Forms中获取异步任务的结果

Xamarin中的异步按钮事件

Xamarin Forms PCL的Azure ServiceBus

Xamarin Forms - 从 pcl 的视图模型调用休息服务

当我的应用启动时,如何在Xamarin表单中调用此异步方法?

如何在Xamarin Forms中从父项调用子项xaml中的方法?

Xamarin PCL中缺少Type.GetProperties()

Xamarin PCL中缺少System.Timer

Xamarin PCL解决方案中的IntentService

在 Xamarin PCL 中添加 Web 引用

xamarin跨平台PCL中的加密

从同步函数中调用异步函数

在 Xamarin Forms 中更改语言

Xamarin.Forms中的SingalR