Wait (), приведет к запуску потенциально асинхронного кода в режиме синхронизации.await не будет.
Например, у вас есть веб-приложение asp.net.UserA вызывает / getUser / 1 конечную точку.Пул приложений asp.net выберет поток из пула потоков (Thread1), и этот поток выполнит HTTP-вызов.Если вы сделаете Wait (), этот поток будет заблокирован, пока не разрешится вызов http.Пока он ожидает, если UserB вызывает / getUser / 2, тогда пулу приложений потребуется обслуживать другой поток (Thread2) для повторного вызова http.Вы только что создали (ну, на самом деле, извлекли из пула приложений) другой поток без какой-либо причины, потому что вы не можете использовать Thread1, поскольку он был заблокирован функцией Wait ().
Если вы используете await в Thread1, то SyncContext будет управлять синхронизацией.между потоком 1 и вызовом http.Просто он будет уведомлять, как только http-вызов завершен.Между тем, если UserB вызывает / getUser / 2, то вы снова будете использовать Thread1 для выполнения http-вызова, потому что он был освобожден после того, как ожидают попадания.Тогда другой запрос может использовать его, даже дальше.После завершения http-вызова (user1 или user2) Thread1 может получить результат и вернуться к вызывающей стороне (клиенту).Тема 1 использовалась для нескольких задач.