.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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д