В настоящее время я работаю над приложением ASP.NET MVC, которое взаимодействует с API-интерфейсами более 10 поставщиков для сбора данных. Наш текущий подход предполагает ожидание завершения всех вызовов API с использованием Task.WaitAll, но это приводит к ухудшению взаимодействия с пользователем из-за тайм-аутов соединения. Как мы можем повысить производительность нашего приложения ASP.NET MVC, чтобы уменьшить время ожидания и улучшить взаимодействие с пользователем?
Я попытался оптимизировать свое приложение ASP.NET MVC с помощью Task .WhenAny среди других подходов к асинхронной обработке нескольких вызовов API. Несмотря на эти усилия, я сталкиваюсь с постоянными ошибками. В представлении не отображаются значения, и ошибки, похоже, проскальзывают и не обнаруживаются. Кроме того, контроллер передает эти ошибки в представление. Как я могу решить эти проблемы и обеспечить более плавную работу?
Пожалуйста, дайте мне знать, если есть какой-либо способ улучшить код.
Пример кода ниже:
for (int i = 0; i < sources.Count(); i++)
{
if (sources == "MY" && suppliers.Contains("MY"))
{
supplier = new SabreRest.Flights();
}
if (sources == "MY" && suppliers.Contains("MY"))
{
supplier = new SabreRest.Flights();
}
if (sources == "MY" && suppliers.Contains("MY"))
{
supplier = new SabreRest.Flights();
}
if (sources == "MY" && suppliers.Contains("MY"))
{
supplier = new SabreRest.Flights();
}
if (sources == "MY" && suppliers.Contains("MY"))
{
supplier = new SabreRest.Flights();
}
if (supplier != null)
{
Task myTask = Task.Factory.StartNew(() =>
{
supplier.Search(copyRequest, flightDetails, newpccMatrixList, client, copiednearbyairports);
});
taskList.Add(myTask);
pccMatrixList.ForEach(a => a.IsAvailable = false);
}
}
Task.WhenAll(taskList);
Подробнее здесь: https://stackoverflow.com/questions/784 ... vc-c-sharp