在不关闭 Stream 的情况下离开 StreamReader
Leave StreamReader without closing Stream
我目前正在使用 Azure 中继服务,在处理流时遇到了问题。我需要以同步方式使用此服务,因为将使用此实现的软件需要它。
我正在打开服务流并使用 StreamReader()
从中读取数据,工作正常。但是现在我必须 离开 StreamReader 而不关闭 底层流,因为我必须将答案发送回发件人。
问题是,我无法在不关闭底层流的情况下离开 StreamReader()
,并且无法重新打开流以发送回应答。
有什么解决这个问题的想法吗?
感谢您的帮助。
有一个 overload of the StreamReader
constructor 接受 bool leaveOpen
参数。传递 true
可防止 StreamReader
在处理 StreamReader
时关闭流。
leaveOpen
Type: System.Boolean
true to leave the stream open after the StreamReader object is disposed; otherwise, false.
示例,使用通过更简单的 StreamReader
构造函数获得的默认 UTF8 编码和 1024 字节缓冲区:
using (var reader = new StreamReader(stream, Encoding.UTF8, true, 1024, true))
{
// use reader
} // stream will NOT be closed here
我目前正在使用 Azure 中继服务,在处理流时遇到了问题。我需要以同步方式使用此服务,因为将使用此实现的软件需要它。
我正在打开服务流并使用 StreamReader()
从中读取数据,工作正常。但是现在我必须 离开 StreamReader 而不关闭 底层流,因为我必须将答案发送回发件人。
问题是,我无法在不关闭底层流的情况下离开 StreamReader()
,并且无法重新打开流以发送回应答。
有什么解决这个问题的想法吗?
感谢您的帮助。
有一个 overload of the StreamReader
constructor 接受 bool leaveOpen
参数。传递 true
可防止 StreamReader
在处理 StreamReader
时关闭流。
leaveOpen
Type: System.Boolean
true to leave the stream open after the StreamReader object is disposed; otherwise, false.
示例,使用通过更简单的 StreamReader
构造函数获得的默认 UTF8 编码和 1024 字节缓冲区:
using (var reader = new StreamReader(stream, Encoding.UTF8, true, 1024, true))
{
// use reader
} // stream will NOT be closed here