Я играл с тем, что, как я думал, было простой идеей. Я хочу, чтобы иметь возможность читать в файле откуда-то (сайт, файловая система, ftp), выполнять некоторые операции над ним (сжимать, шифровать и т. Д.), А затем сохранять его где-нибудь (где-то может быть файловая система, ftp или что-то еще) , Это базовый дизайн трубопровода. То, что я хотел бы сделать, это прочитать в файле и поместить его на MemoryStream, затем выполнить операции с данными в MemoryStream, а затем сохранить эти данные в MemoryStream где-нибудь. Я думал, что я мог бы использовать один и тот же поток, чтобы сделать это, но работать в нескольких задач:Поток Повторное использование в C#
- Everytime я использую StreamWriter или StreamReader, мне нужно, чтобы закрыть его и что закрывает поток, так что я не могу использовать его больше , Кажется, должен быть какой-то способ обойти это.
- Некоторые из этих файлов могут быть большими, и поэтому я могу потерять память, если попытаюсь сразу прочитать все это.
Я надеялся, что вы сможете развернуть каждый из шагов в виде отдельных потоков и начать этап сжатия, как только будут данные в потоке, а затем, как только сжатие будет иметь сжатые данные в потоке я мог бы начать его сохранять (например). Легко ли это возможно с потоками C#? У кого-нибудь есть мысли о том, как добиться этого лучше всего?
Спасибо,
Майк
С .NET 4.0 вы можете использовать встроенные '.CopyTo' и'.CopyToAsync', чтобы скопировать поток в другой –