У меня есть метод ввода-вывода, который зависает на долю секунды при получении данных. Я пытался преобразовать метод в асинхронный метод, но у меня возникли проблемы с этим.
Я включил ниже не асинхронную версию кода и мою попытку сделать его асинхронным.
//non async method
public double GetBaseline()
{
var Client = new RestClient();
IRestResponse response;
Client.BaseUrl = new Uri("https://apiv2.bitcoinaverage.com/indices/global/ticker/short?crypto=BTC&fiat=USD");
CryptoAverage BTCAvg;
var request = new RestRequest();
response = Client.Execute(request);
BTCAvg = JsonConvert.DeserializeObject<CryptoAverage>(response.Content);
return Math.Round(BTCAvg.BTCUSD.Last, 2);
}
//async method
public async double GetBaselineAsync()
{
var Client = new RestClient();
IRestResponse response;
Client.BaseUrl = new Uri("https://apiv2.bitcoinaverage.com/indices/global/ticker/short?crypto=BTC&fiat=USD");
CryptoAverage BTCAvg;
var request = new RestRequest();
response = await Client.ExecuteAsync(request);
BTCAvg = JsonConvert.DeserializeObject<CryptoAverage>(response.Content);
return Math.Round(BTCAvg.BTCUSD.Last, 2);
}
Есть две проблемы, о которых мне известно из приведенного выше кода. В первой строке требуется несколько ключевых слов Task, но я не уверен, как их кодировать. Я попробовал несколько вещей здесь безуспешно.
Во-вторых, ExecuteAsync принимает второй аргумент, но я не уверен, что. Я видел несколько примеров этого, но они кажутся слишком сложными для того, что я пытаюсь сделать?
Ценю любую помощь, которую вы, ребята, можете предложить!