Я реализую код от разработчика, который использует асинхронные функции.
Пример:
public async Task<string> GetDataAsync(string jsonString = "")
{
string url = $"{this.url}";
using (HttpClient httpClient = new HttpClient())
{
using (StringContent body = new StringContent(jsonString, Encoding.UTF8, "application/json"))
{
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", this.accessToken);
using (HttpResponseMessage response = await httpClient.PostAsync(url, body))
{
switch (response.IsSuccessStatusCode)
{
case true:
return await response.Content.ReadAsStringAsync();
default:
throw new Exception($"Error calling url: {url}. HTTP status: {response.StatusCode}");
}
}
}
}
}
И мне не нужно и не хочу ничего асинхронно вызывать. Но проблема в том, что асинхронные функции все время перепрыгивают через мои функции, и поэтому я не могу просто перестать их использовать, и, поскольку у HttpClient нет функции Post()
для использования вместо PostAnync()
, я чувствую себя застрявшим в этой асинхронной клетке.
Есть ли хитрость или что-то еще для того, чтобы нормально вызывать асинхронную функцию, не позволяющую многопоточности пузыриться через все родительские функции?
Или единственное решение - найти пакет без асинхронных функций?