Как Вы ожидаете Сетевого Потока, чтобы иметь данные для чтения?

Вы также можете использовать параметр контекста, который пропускает комментарии в вашем web.xml.

Это параметр:

javax.faces.FACELETS_SKIP_COMMENTS 
7
задан Martin Brown 1 September 2009 в 21:35
поделиться

3 ответа

Вы можете использовать асинхронные методы NetworkStream и установить ManualResetEvent в методе EndReceive.

// ...
netStream.BeginRead(buffer, offset, callback, state);
// ...

внутри метода обратного вызова

netStream.EndRead(ar);
netStreamManualResetEvent.Set();

, затем ваш код

while (notDone)
{
    WaitHandle.WaitAny(new WaitHandle[] { queue1.HasData, queue2.HasData, netStreamManualResetEvent} );
    // ...
    if (netStream.DataAvailable)
    {
        // make the buffer from the AsyncState in the callback method available here
        // process buffer
    }
}
7
ответ дан 7 December 2019 в 03:18
поделиться

Я обнаружил, что, если Вы звоните NetworkStream.Read с size = 0, это на самом деле заблокируется:

networkstream.Read(buffer, 0, 0);

документация не соглашается с этим, но для меня она работала.

0
ответ дан 7 December 2019 в 03:18
поделиться

Самый простой способ - это, вероятно, использовать дополнительный поток, который синхронно читает и помещает дополнительные данные в дополнительную очередь.

В качестве альтернативы вы можете использовать асинхронный ввод-вывод. , но это несколько сложно - и вам все равно понадобится дополнительная очередь.

2
ответ дан 7 December 2019 в 03:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: