0

一部のアプリケーション間通信 (またはアプリケーション内通信) にメモリ マップト ファイルを使用するアプリに取り組んでおり、メモリ マップト メモリのみのファイルをランダムに生成するときに、誤って生成しないようにしたいまたは、すでに存在する複製を取得します(惑星が整列する非常にまれなケースで、そのようなことが起こる可能性があります)。それを防ぐ方法についてのアイデアはありますか?System.IO.MemoryMappedFiles には File.Exists() メソッドがないようです... OpenOrCreate() を試してアクセス違反などに対処できると思いますが、これは厄介な速さになります。

4

3 に答える 3

2

いずれにしても、使用File.Exists()は並行性に対して安全ではありません。

最善の方法は、ファイル名を Guid に基づいて作成することです。

于 2013-08-26T14:53:19.860 に答える
0

まず、会社名、アプリケーション名、またはその両方など、ファイルに一意の名前を使用することで、名前の競合を防ぐことができます。ファイル名にそれらが含まれるアプリは他にありません。同じアプリの 2 つのコピーが心配な場合は、[作成] または [開く] ではなく、[作成のみ] モードでファイルを開くことができます。

于 2013-08-26T15:24:04.863 に答える