我是内存映射的新手,我想做的是在多个线程之间共享一个映射文件,为此我需要创建映射文件并使用该函数:MapViewOfFile
所以每个线程都可以访问文件的一部分,当然,我需要将视图的偏移量发送到尊重分配粒度的每个线程。但我不明白的部分是:dwFileOffsetHigh & dwFileOffsetLow。MSDN 说:
高偏移量和低偏移量的组合必须在文件映射中指定偏移量。
那么如何以它们可以指定正确偏移量的方式设置这两个参数的值。我需要进行任何计算还是只使用变量而系统处理其余的(查找偏移量)?,我真的坚持这一点,每次我尝试都会遇到异常。所以假设我知道每个视图的偏移量和大小,我怎么可能知道这些参数的值呢?一个例子值得一千次解释。这是对我正在尝试做的事情的解释:
// The main thread create map file and specify the view for every worker thread:
WorkerThreads[i] := WorkerThread.create(...,bloc_offset,bloc_size,...); // So each worker writes in a specified view.
//The worker thread then opens the view and writes data in:
data := mapViewOfFile(mapfileH, FILE_MAP_WRITE, dwFileOffsetHigh, dwFileOffsetLow, blocSize);`
谢谢回答。