Не совсем понятно, что вы имеете в виду, но ASP.NET Core по своей сути асинхронен (по умолчанию он создает пул потоков с несколькими потоками.) Если вы хотите, чтобы ваши отдельные методы API были асинхронными, вам просто нужно закодируйте их таким образом. Класс MVC ControllerBase поддерживает асинхронные методы действия, поэтому все, что вам нужно сделать, это вернуть Task<IActionResult>
вместо IActionResult
из ваших методов действия. В Program.cs или Startup.cs нечего менять, чтобы включить эту функцию.
Также нет способа заставить все методы действия быть асинхронными, и это не будет хорошей идеей. Действия, которые по своей сути будут выполняться в одном потоке (и не будут долго ждать ввода-вывода), лучше блокировать этот поток до тех пор, пока они не вернутся, в противном случае вы бы получили много очень дорогих переключений контекста без каких-либо преимуществ.
Если вы хотите что-то сделать в классах Program или Startup, которые вы хотите распараллелить, то вы будете делать это с помощью библиотек Task и / или Threading и блокировать их до тех пор, пока все ваши параллельные задачи не будут завершены. Однако было бы крайне необычно выполнять такую большую работу при запуске и предполагать, что некоторое переосмысление вашего дизайна может быть в порядке.
Наконец, если вы хотите создавать фоновые задачи, которые выполняются непрерывно, то единственным механизмом в ASP.NET Core для этого является HostedService . Но, в зависимости от того, что вы пытаетесь достичь, возможно, ASP.NET Core просто не тот инструмент для работы.