Что находится в конце «цепочки ожидания»?

#c# #asynchronous

#c# #асинхронный

Вопрос:

Я знал «асинхронность до конца», но какой код должен быть в начале «цепочки ожидания»? Я знал, что для обработчиков событий WPF мы используем async void , а для kestrel мы можем просто написать Task<T> для возвращаемого типа. Так async void или Task.Wait() вершина для всех асинхронных кодов? (моя грамматика может быть плохой, извините за это

Ответ №1:

Это зависит от вашего приложения. Если вы не вынуждены писать синхронный код сверху (например, по устаревшим причинам), вы действительно можете полностью асинхронно работать. Начиная с C # 7.1, у вас также могут быть асинхронные основные методы. В ASP.NET , методы контроллера могут быть асинхронными. В модульных тестах методы тестирования также могут быть асинхронными.

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

1. если я напишу библиотеку, подобную ASP.NET Ядро, что я должен написать сверху, где я не могу выполнять асинхронные операции для вызова этих асинхронных методов? Просто перейти на синхронный режим? Внедряет диспетчер / диспетчер задач?

2. Что означает «я не могу выполнить асинхронность»? Почему вы не можете выполнить асинхронность? Microsoft постоянно выполняет асинхронность в своих библиотеках (посмотрите, например, на EF context.SaveChangesAsync() — они написали это асинхронно, вы называете это асинхронно). Вы используете их библиотеку асинхронно, кто-то использует вашу библиотеку синхронно для написания асинхронной библиотеки, которую кто-то другой использует асинхронно.. Полностью асинхронный