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

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

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

как мне запустить этот метод во вторичном потоке
public async Task<List<string>> ApiReq(string url, int nm)
        {
            string m = Thread.CurrentThread.ManagedThreadId.ToString();
            try
            {
                HttpClient client = new HttpClient();
 
                HttpResponseMessage response = await client.GetAsync(url);
 
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    HttpContent responseContent = response.Content;
                    var json = await responseContent.ReadAsStringAsync();
 
                    JObject o = JObject.Parse(json);
 
                    var str = o.SelectToken(@"$.response");

                    switch (nm)
                    {
                        case 1:
                            countries = JsonConvert.DeserializeObject<Country[]>(str.ToString());
                            List<string> Loc = new List<string>();
                            foreach (var i in countries)
                            { Loc.Add(i.Title); }
                            return Loc;
                            break;
                        default: return null;
                        
                    }
                }
            }
            catch (Exception ex)
            { }
            return null;
        }

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

textual
Листинг программы
readonly SemaphoreSlim m = new SemaphoreSlim(1, 1);
 
public async Task<List<string>> ApiReq(string url, int nm)
{
   await m.WaitAsync();
   try
   {
      // Код
   }
   finally
   {
      m.Release();
   }
}

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


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

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

6   голосов , оценка 3.667 из 5
Похожие ответы