我目前正在使用Azure中继服务,并遇到处理流的问题。我需要以同步方式使用此服务,因为软件需要使用此实现。
我打开服务流并使用javac -d bin -sourcepath...[and so on]
从中读取数据,工作正常。但是现在我必须离开 StreamReader 而不关闭基础流,因为我必须将回复发送给发件人。
问题是,我无法在不关闭基础流的情况下离开StreamReader()
,而且无法重新打开流以发送回复。
任何想法如何解决这个问题?
感谢您的帮助。
答案 0 :(得分:1)
有一个overload of the StreamReader
constructor接受bool leaveOpen
参数。传递true
会阻止StreamReader
在StreamReader
被处置时关闭流。
leaveOpen
类型:System.Boolean
true 在StreamReader对象被释放后保持流打开;否则, false 。
示例,使用较简单的StreamReader
构造函数获得的默认UTF8编码和1024字节缓冲区:
using (var reader = new StreamReader(stream, Encoding.UTF8, true, 1024, true))
{
// use reader
} // stream will NOT be closed here