[英]Multithreading a filestream in vb2005
我正在尝试为网站建立一个资源文件,基本上将所有图像都压缩到一个压缩文件中,然后将其解压缩到客户端的输出缓冲区中。
我的问题是在vb2005中,如果您知道转换后的文件的大小(例如有点洪流)并处理文件流的各个部分(在这种情况下为单个文件),然后将它们添加到资源文件流中,则文件流可以是多线程的吗?完成一次而不是一次?
如果您需要类似于洪流写入文件的方式,这就是我要实现的方式:
:)
无论如何,从您的评论来看,您的问题似乎是另一个问题。
我发现了一些东西,但不确定是否可行:
如果要将数据写入文件,可以使用两个并行方法
WriteByte()
和Write()
。WriteByte()
将单个字节写入流:
byte NextByte = 100;
fs.WriteByte(NextByte);
另一方面,
Write()
写出字节数组。 例如,如果使用某些值初始化了前面提到的ByteArray
,则可以使用以下代码写出数组的前nBytes:
fs.Write(ByteArray, 0, nBytes);
来自:
Nagel,Christian,Bill Evjen,Jay Glynn,Morgan Skinner和Karli Watson。 “第24章-操作文件和注册表”。 带有.NET 3.0的专业C#2005。 Wrox新闻。 ©2007。Books24x7。 http://common.books24x7.com/book/id_20568/book.asp(2009年 7月22日访问)
我不确定您是否在询问是否可以以多线程方式读取或写入System.IO.FileStream对象。 但是在两种情况下答案都是“否”。 这不是受支持的方案。 您将需要添加某种形式的锁定,以确保对资源的序列化访问。
该文档将对对象的多线程访问称为不支持的方案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.