У меня есть вопрос об этом примере: Асинхронный клиентский сокет . Там написано, что операции асинхронные и они ЯВЛЯЮТСЯ (представлены beginxxx/endxxx), но используют ManualResetEvent
и если я правильно понял код примера - такие вызовы:
Receive(client);
receiveDone.WaitOne();
Заблокирует поток, из которого они были вызваны. Так что, если у меня есть приложение с пользовательским интерфейсом, и я вызываю этот код асинхронного сокета из основного потока - приложение зависнет... Или я ошибаюсь? Извините, я ожидал асинхронно отправлять/получать некоторые команды по tcp без зависания основного потока. Придется ли мне вызывать все операции сокета из этого образца, чтобы избежать зависания?