Тем не менее, неправильное понимание ключевых различий между асинхронными пустотами и асинхронными методами задач может привести к неожиданным ошибкам. Этот вопрос исследует, почему Async void Методы могут привести к исключению, в то время как асинхронные методы задачи обычно не являются.
]роль Async void
Async void Методы предназначены для выполнения асинхронного без возврата объекта задачи. Они увеличивают количество выдающихся операций во время исполнения и уменьшают его после завершения. Это поведение может быть полезным в определенных сценариях, таких как задачи огнестрельного и установленного. Исключение:
System.invalidoPerationException: асинхронный модуль или обработчик, завершенный, в то время как асинхронная операция все еще находилась в рассмотрении, что это исключение происходит из -за того, что ASP.NET ожидает, что все асинхронные операции отслеживаются через задачи, которые обеспечивают центральную точку контроля для управления зависимостью и заканчивающимся завершением. Асинхронные методы, не возвращая задачу, обойти этот механизм отслеживания, потенциально оставляя выдающиеся операции неразрешенными.
async и исключение asp.net
В отличие от методов задачи Asp.net не возникает этой проблемы из -за этого вопроса из -за исключения Asp.net. Вернув задачу, асинхронные методы задачи позволяют ASP.NET отслеживать и дождаться их завершения, гарантируя, что все выдающиеся операции (включая задачи огнестрельного и закусочного) приведены. Метод thispagewillload, который возвращает Async Task, успешно выполняется, в то время как метод ThispageWillNotLoad, который возвращает Async void, приведет к упомянутому исключению.
System.InvalidOperationException: An asynchronous module or handler completed while an asynchronous operation was still pending
Заключение
, когда Async void Методы могут быть подходящими в определенных сценариях, которые должны использоваться, с которыми они должны использовать, в частности, они должны использоваться, если они должны использовать, что с сценариями. необходимо для обеспечения надлежащего завершения и обработки исключений. В качестве наилучшей практики рекомендуется отдавать предпочтение методам асинхронных задач над асинхронизированными методами в разработке ASP.NET, чтобы избежать потенциальных ошибок и обеспечить надежное и надежное применение. ]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3