0

複数のプロセスからwriteshareおよびappendモードでファイルストリームを開いています。バッファリングされていない単一の書き込み操作がアトミックと見なされるかどうかを誰かが知っていますか?

または、データが安全であることを確認するために、さまざまな書き込みを同期する方法を開発する必要がありますか?

4

1 に答える 1

1

私は自分の道を見つけました。

このコンストラクターを使用してファイルストリームを開くことができます。

new FileStream(FileName,
    FileMode.Append,
    System.Security.AccessControl.FileSystemRights.AppendData,
    FileShare.ReadWrite, 4096, FileOptions.None);

System.Security.AccessControl.FileSystemRights.AppendDataパラメーターを使用してストリームを開き、 FileMode.Appendを使用すると、OSはアトミックな方法でバッファーを書き込もうとします。

書き込みがバッファサイズよりも大きい場合、操作はアトミックではないため、バッファサイズを確認する必要があります。

于 2013-02-01T12:07:51.010 に答える