Это более общий вопрос относительно асинхронных шаблонов в C # .NET, описанный здесь MSDN .
Когда требуется длительная синхронная операция 1006 * длявызываться (например, - WCF, запрос к базе данных, ввод-вывод и т. д.), и я не хочу, чтобы поток блокировался (например, - поток с графическим интерфейсом), означает ли это, что где-то должен существовать другой поток, который выполняет блокировку?
Требует ли выполнение синхронного вызова асинхронного потока где-нибудь для блокировки?
Итак, если я сделаю 10 длительных асинхронных вызовов (которые на самом деле являются 10 синхронными вызовами), должны ли 10 потоков делать ожидание?Или есть механизм, предотвращающий блокировку 10 потоков?
В WCF вы можете создать методы Begin и End для вызова WCF, чтобы сделать его асинхронным.Означает ли это, что когда я вызываю этот асинхронный метод, где-то есть поток, либо на клиенте, либо на сервере, который ожидает меня?
Я прочитал несколько статей о различных методах для достижения асинхронности,но эти статьи не объясняют, что делается под капотом.
Обновление
Я сделал свой вопрос более конкретным, так как меня больше интересует.СЕТЬ.асинхронные шаблоны, описанные MSDN .
Обновление 2
Я изменил вопрос, чтобы сделать его более специфичным для асинхронных синхронных вызовов.