Как мне "развеять" поток в .net?C#

Место общения программистов C#
Ответить
Anonymous
 Как мне "развеять" поток в .net?

Сообщение Anonymous »

Как обсуждалось ранее, когда бинарный читатель или бинарник закрываются, его базовый поток также закрывается (AARGH). Рассмотрим эту ситуацию: обычная r передается памятью, скажем, m ; Я хотел бы написать кое -что в m , а затем передать его в другую процедуру для получения дополнительной обработки (не обязательно писать). Для удобства я хотел бы обернуть m в бинарную авторитет, чтобы сделать мое письмо. После написания я закончил с бинарным автором, но не с m .
void R(MemoryStream M)
{
using (B = new BinaryWriter(M))
{
// write some stuff using B
}

S(M); // now pass M to another routine for further processing
}

Но, я не могу избавиться от бинарного элемента без закрытия m .
Q: есть ли способ сделать что -либо из следующего? /> [*] Повторно откройте поток после того, как он был закрыт

Обновление 11 сентября 2025
.net 4.5 (2012) добавил параметр LeaveOpen для решения этой проблемы. Теперь мы можем сделать < /p>
using (var B = new BinaryWriter(m, Encoding.UTF8, leaveOpen: true))
{
// write some stuff using B
}


Подробнее здесь: https://stackoverflow.com/questions/163 ... eam-in-net
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»