几个线程同时向一个tfilestream文件中写入信息,高分请教(100分)

  • 主题发起人 主题发起人 CaiBirD
  • 开始时间 开始时间
C

CaiBirD

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用,每个线程从不同的位置开始写
线程 1 0----1000
线程 2 1001---2000
线程3 2001---3000
。。。。。。。。。
我用file1:=TFilestream.Create(filename,fmcreate or fmShareDenyNone)创建了一个tfilestream文件,用
File1.Seek(Contentlength*blockorder,soFrombegin
ning);来移动每个线程的指针到相应的位置,然后向里面写入!
为什么 最后得到的文件总是大呢???
高手指点。。。。。。。。。。。。。。。。。
www.holoo.com/lion/master/threaddown.rar
这是我的程序代码,大家看看吧!
我做的一个很简单的下载的东西
 
先建立一个大小和需下载文件相同的文件,然后建立内存映射,请参考
http://www.delphibbs.com/delphibbs/dispq.asp?lid=515889
然后各线程对内存进行写入就可以了。
 
用内存映射最快,不过比较繁琐
可以每个线程写入不同的 TMemoryStream,最后再汇总。
 
没个线程写不同的地方啊,给他分配一个值,我就做过,没有什么问题,
 
你先把文件流的大小确定下来
 
这样也行:
file1:=TFilestream.Create(...) 过后立刻(主线程中):
file1.Size := 你的文件大小;
然后再 ...;
 
后退
顶部