メモリマップファイルの名前が示すように、高速データ処理のために、C#でクラスMemoryMappedFile
を使用して大きなファイルの一部をメモリにマップできることを理解します。私がメモリマッピングされたファイルで何をしたいのかは、マップされたメモリを並列処理することです。そのために、私が質問メモリマップファイルのデータを並列処理する方法
MemoryMappedFileViewAccessor
スレッドセーフとParallel.For-安全ですか?私は実際に質問をテストするためのデモプログラムを作った、それは働いているようだ。しかし、これについての参照を見つけることができません。答えが「はい」の場合、私は完了です。それ以外の場合は、- アレイにマップされたメモリに直接アクセスする方法はありますか?私は
MemoryMappedFileViewAccessor
がReadArrayメソッドを持っていることを知っていますが、このメソッドを使うのはメモリの複製です。
あなたの並列処理では、ファイルを変更するか、またはファイルの読み取りのみを行いますか? –
@CharlesLambertいいえ、データ処理は、基本的にマップされたメモリにアクセスしているaccessor.Writeまたはaccessor.Readの操作を伴います。メモリマップされたファイルは実際にファイル操作を処理します。 –