Что происходит, когда я пытаюсь использовать объект класса NamedPipeServerStream
для передачи 1 ГБ данных, вызвав его метод Write()
? Особенно, если данные не сразу потребляются клиентом. Где хранятся данные?Трубы для переноса больших данных
Каковы хорошие методы передачи большого количества данных с использованием труб? Разделить его на меньшие куски и реализовать какой-то протокол связи?
Есть ли лучшие альтернативы трубам? Я бы хотел избежать записи на жесткий диск.
Почему бы вам не попробовать и не выяснить? Моя личная догадка заключается в том, что большая запись в трубу будет довольно быстро зависать, ожидая, что читатель будет потреблять данные на другом конце. Таким образом, трубы дают вам автоматический протокол. –
Например, клиент попытается прочитать меньшие фрагменты (скажем, 1K), которые потребуют некоторого времени, в то время как данные записываются все сразу, и все эти данные должны куда-то перемещаться. Могут быть и другие сценарии, о которых я не могу сейчас думать. – mcu
Итак, вы говорите, что 1 ГБ данных не проблема, если клиент читает все это за один раз? – mcu