Я пытаюсь написать довольно простое приложение, которое передает данные между двумя сокетами. Однако я немного запутался в использовании операций NetworkStream Async (BeginRead и EndRead).Что происходит, когда несколько вызовов Async происходят до завершения делегатов?
Например:
while (myNetworkStream.DataAvailable)
myNetworkStream.BeginRead(mBrowserDataBuffer, 0, mBrowserDataBuffer.Length, new AsyncCallback(ProcessNetworkStreamRead), myNetworkStream);
Когда слово BeginRead, метод будет немедленно вернуться и запустить поток для выполнения операции чтения. Однако, в моем цикле выше, что произойдет, если BeginRead будет вызван AGAIN, прежде чем делегат закончит?
В основном я хочу, чтобы мой делегат добавлял входящие данные в больший буфер и затем обрабатывал сообщения по мере их завершения. Мне нужно использовать асинхронные операции, потому что, пока один сокет читает, я хотел бы также читать и обрабатывать из другого сокета.