Мне нужно вызвать restsharp ExecuteTaskAsync, я использовал await
при выполнении API и жду завершения всех задач, так как он запускается в цикле, как только он достигает await System.Threading.Tasks.Task.WhenAll(tasksList)
, то нет, он заблокирован, нет ответа вit.
Вызов асинхронного кода:
Task<IEnumerable<AsyncResponse>> responseList = AddPAsync(id, id1);
Для выполнения ExecuteTaskAsync Restsharp:
public static async Task<AsyncResponse> ExecuteApiAsync(RestRequest request, string url, dynamic identifier)
{
var restClient = new RestClient(url);
var cancellationTokenSource = new CancellationTokenSource();
var restResponse = await restClient.ExecuteTaskAsync(request);
return new AsyncResponse{ RestResponse = restResponse, Identifier = identifier };
}
Подготовка запроса и вызов ExecuteTaskAsync RestSharp:
private async Task<IEnumerable<AsyncResponse>> AddPAsync(List<Participant> participantInfo, string registrationId)
{
foreach (var p in pinfo)
{
try
{
var request = new RestRequest(Constants.API_VERSION + Uri, Method.POST);
request.AddHeader("Authorization", string.Format("Bearer {0}", accessToken));
request.AddParameter(Constants.APP_JSON, JsonConvert.SerializeObject(p), ParameterType.RequestBody);
var response = Util.ExecuteApiAsync(request, Constants.END_POINT_URL_NAME, p.Identifier);
tasksList.Add(response);
}
catch (Exception ex)
{
}
}
await System.Threading.Tasks.Task.WhenAll(tasksList);
}
Когда он набирает await Task.WhenAll
, то нет ответа.
Я уже пробовал:
`ConfigureAwait (false) - он не работает.
Это приложение ASP.Net MVC в sitecore.