Использование пользовательского делегата и вызов его метода BeginInvoke предлагают быстрый способ запуска рабочих потоков для вашего приложения.Но, к сожалению, они снижают общую производительность вашего приложения, поскольку они потребляют потоки из того же пула, который используется ASP.NET для обработки HTTP-запросов.
Просто запомните, если тогда важен обратный вызов из асинхронного метода,вам нужно заблокировать возврат основного потока клиенту до завершения асинхронного процесса.Если ведение журнала и аналитика являются вызовом метода «запусти и забудь», то все будет проще, и вы можете просто запустить метод и позволить серверу ответить клиенту.Однако, если обратный вызов важен и сервер завершил обработку, на сервере ничего не происходит для обработки обратного вызова после его завершения;это то, где асинхронная обработка на сервере для приложений ASP.NET отличается, скажем, от приложения WinForms.