我真的在寻找解决方案,找不到合适的指示。 我在RestService.cs中有异步方法
body
我想在我的主页中使用它,但当然我不能使用等待同步方法。我发现有些开发人员建议将异步任务放在例如OnStart方法中:https://xamarinhelp.com/xamarin-forms-async-task-startup/ 我需要将返回的列表绑定到Xaml中的选择器,但当然在尝试使用时:
public async static Task<List<Convert>> CheckBTCUSDAsync()
{
HttpClient client = new HttpClient();
string restUrl =
"https://bitbay.net/API/Public/BTCUSD/trades.json";
HttpResponseMessage responseGet = await
client.GetAsync(restUrl);
if (responseGet.IsSuccessStatusCode)
{
var response = await responseGet.Content.ReadAsStringAsync();
List<Convert> currencies = Convert.FromJson(response);
//Debug.WriteLine(currencies[0].Date);
return currencies;
}
else
{
//Debug.WriteLine("***************");
//Debug.WriteLine("*****FALSE*****");
//Debug.WriteLine("***************");
return null;
}
}
它挂起了UI线程。任何人都知道解决这个问题的最佳/最简单方法是什么?
答案 0 :(得分:2)
这就是我在应用程序上的工作方式
var convert = Task.Run(() => RestService.CheckBTCUSDAsync()).Result;