.NET 4.x Как запустить async метод в отдельном потоке? - C#

Узнай цену своей работы

Формулировка задачи:

как мне запустить этот метод во вторичном потоке
Листинг программы
  1. public async Task<List<string>> ApiReq(string url, int nm)
  2. {
  3. string m = Thread.CurrentThread.ManagedThreadId.ToString();
  4. try
  5. {
  6. HttpClient client = new HttpClient();
  7. HttpResponseMessage response = await client.GetAsync(url);
  8. if (response.StatusCode == HttpStatusCode.OK)
  9. {
  10. HttpContent responseContent = response.Content;
  11. var json = await responseContent.ReadAsStringAsync();
  12. JObject o = JObject.Parse(json);
  13. var str = o.SelectToken(@"$.response");
  14.  
  15. switch (nm)
  16. {
  17. case 1:
  18. countries = JsonConvert.DeserializeObject<Country[]>(str.ToString());
  19. List<string> Loc = new List<string>();
  20. foreach (var i in countries)
  21. { Loc.Add(i.Title); }
  22. return Loc;
  23. break;
  24. default: return null;
  25. }
  26. }
  27. }
  28. catch (Exception ex)
  29. { }
  30. return null;
  31. }

Решение задачи: «.NET 4.x Как запустить async метод в отдельном потоке?»

textual
Листинг программы
  1. readonly SemaphoreSlim m = new SemaphoreSlim(1, 1);
  2.  
  3. public async Task<List<string>> ApiReq(string url, int nm)
  4. {
  5.    await m.WaitAsync();
  6.    try
  7.    {
  8.       // Код
  9.    }
  10.    finally
  11.    {
  12.       m.Release();
  13.    }
  14. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы