有关创建CreateStreamOnHGlobal,多线程共享内存传送文件的问题,谢谢!
我想用多线程共享出一个MEMORY,以便在两个线程中传递不同的文件.
我的作法:
我用CreateStreamOnHGlobal建了一个用来存放文件的IStream.
线程A向里面写数据文件.
线程B用GetHGlobalFromStream得到这个Stream的HGLOBAL,
再通过GlobalLock得到数据指针.从这块数据中读数据.
遇到的问题在于,我的线程A向这MEMORY中写文件后,第二次写的,第N次写的会在这块内存中累加,有没有办法在线程B读完内存中文件后,清空这内存. 以便线程A继续从头写入? 即如何保证这块内存中始终只有一个文件???
谢谢!
问题点数:20、回复次数:4Top
1 楼bohlee(我心澎湃)回复于 2006-03-18 17:50:41 得分 0
感觉我怎么看不懂啊Top
2 楼Mackz(在相互)回复于 2006-03-18 20:40:28 得分 0
为什么不用共享内存?当然在线程B中也是可以清空的,注意加个同步锁,用临界区就行。Top
3 楼Alvin665(Alvin)回复于 2006-03-19 12:49:35 得分 0
其实就是我用CreateStreamOnHGlobal创建的这个共享的STREAM,当我向它里面写文件时,第一次写一个文件后,第二次写第二个文件会接在第一个文件后面,那这样这个STREAM就越来越大,而且不是我想要的状况,即任何时候这个STREAM应该只有一个文件在里面.
如何作到这点啊?Top
4 楼Alvin665(Alvin)回复于 2006-03-20 07:56:09 得分 0
难道没人知道吗?Top




