質問

パフォーマンス上の理由から、外部アプリケーションが読み取れるメモリに書き込みたいと考えています。両方のアプリケーションを連携させることはできないので、ファイルを書き込むしかないと思います。ただし、物理ディスクへの書き込みは十分な速度ではありません。仮想パーティションをマウントして、どのアプリケーションでもアクセスできるようにしたいと考えています。どうやってするの?

役に立ちましたか?

解決

あなたは、アプリケーション間でデータを転送するために、名前付きパイプを使用することができます。

他のヒント

あなたは限りWindows上のプロセス間でメモリを共有するために、仮想ディスクの作成などに行く必要はありません - あなたは共有メモリブロックを作成することができ、かつ複数のプロセス、そのメモリにアクセスすることができます。

名前付き共有メモリを作成このMSDNの記事を参照してください。 A>

.NET 4.0を使用できるといいのですが:)

.NET 4.0 では、メモリ マップド ファイルが導入されています。

Gunnar Peipman は次のリンクで素晴らしいブログを書いています。 .Net フレームワーク 4.0:メモリマップドファイルの使用

彼のブログでは、「メモリ マップト ファイルは、メモリ内データ操作を行う必要があり、データ構造が大きい場合に役立ちます。大きなメモリ内データの場合、メモリ マップト ファイルのパフォーマンスが最高です。MemoryStream よりもはるかに高速です。ハードディスク上のファイルと同じように、 メモリマップされたファイルは異なるプログラム間で共有可能."

彼のブログにもサンプルコードが含まれています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top