Во-первых, почему вы думаете, что вам нужно сделать Async Controllers?У вас возникли проблемы с производительностью, которые, как вы думаете, Async помогут вам?Зачем усложнять ваше приложение обработкой Async, если она вам на самом деле не нужна?
Async действительно предназначена для обработки гораздо более масштабного масштабирования или когда вам нужно выполнять не связанные с процессором операции в ваших контроллерах, которые могут потребоватьдолгое время исполнять.
Во-вторых, я думаю, вы немного озадачены тем, как работают асинхронные контроллеры.В большинстве случаев вам не нужно изменять свой бизнес-уровень, вам просто нужно создать асинхронную "прокладку", чтобы обернуть бизнес-уровень.Async не означает «многопоточный».он по-прежнему будет выполнять один поток на запрос, и вы все равно будете называть свою бизнес-логику однопоточной (если только вы не пишете код для многопоточной работы).
Все асинхронные контроллеры позволяют лучше использовать потокБассейн.Если у вас есть потоки, которые не связаны с процессором, они могут быть возвращены в пул потоков в ожидании повторной активации вашего запроса, что позволяет лучше использовать пул потоков, а не использовать поток, который ничего не делает, кроме ожидания.
Если вам нужно вызвать несколько операций, вы используете свойство AsyncManager.OutstandingOperations, чтобы контролировать, сколько операций должно быть выполнено для выполнения запроса.