C # асинхронные функции

#c# #asynchronous #delegates

#c# #асинхронный #делегаты

Вопрос:

В настоящее время я асинхронно выполняю длительный процесс с использованием делегатов. этот процесс может быть вызван несколько раз в зависимости от заданных данных (например, количества сотрудников). мой вопрос касается влияния на производительность создания списка делегатов, ответственных за выполнение процесса.

Комментарии:

1. О каком размере мы здесь говорим, реально? Если это несколько, то я бы не стал беспокоиться об этом, но если число довольно велико, вы можете подумать об использовании ThreadPool

Ответ №1:

При асинхронном вызове делегата вы используете поток из пула потоков. Оценка влияния этого на производительность вашего приложения, конечно, будет зависеть от вашего приложения. Например, в ASP.NET уменьшение количества рабочих потоков может иметь негативные последствия, поскольку будет меньше потоков, доступных для запросов на обслуживание.

Комментарии:

1. итак, в случае наличия трафика на моем сайте (что является текущим случаем) все ресурсы в пуле потоков будут полностью израсходованы?

2. @SShebly, опять же, это зависит, но удерживание потоков из пула потоков в течение длительных периодов времени может оказать негативное влияние на производительность веб-приложения.