次の要件を解決するために C# を使用しました。 - 大量のデータを高速に受信できるアプリを作成する - 受信したデータをさらに受信しながら分析できる必要があります。- CPU とディスクの使用を最小限に抑える
アルゴリズムの私のアイデアは..
SIZE = 10MB
Create a mmf with the size of SIZE
On data recived:
if data can't fit mmf: increase mmf.size by SIZE
write the data to mmf
-> 以前の「部屋/スペース」を使用すると、ディスクのサイズが 10MB 単位で増加します。
「mmf.sizeをSIZEで増やす」はC#でどのように行われますか? mmfs とビューの作成に関する多くの簡単な例を見つけましたが、実際に mmfs 領域を増やすコードを見た唯一の場所 (リンク) は、コンパイルできないコードを使用しています。どんな助けでも大いに感謝します。
編集これにより例外が発生します:
private void IncreaseFileSize()
{
int theNewMax = this.currentMax + INCREMENT_SIZE;
this.currentMax = theNewMax;
this.mmf.Dispose();
this.mmf = MemoryMappedFile.CreateFromFile(this.FileName, FileMode.Create, "MyMMF", theNewMax);
this.view = mmf.CreateViewAccessor(0, theNewMax);
}
この例外がスローされます: 別のプロセスで使用されているため、プロセスはファイル 'C:\Users\moberg\Documents\data.bin' にアクセスできません。