.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();
}
}