タイトルが示すように、私は同時にファイルを読み書きしようとしています。私はこのトピックを研究しましたが、私の発見した答えは私のプログラムの状況のために私のために働いていないようです。私は複数のFileSystemWatchersを使用して、常にネットワーク上のフローを通過する大量のファイルを追跡しています。ファイルが自分のフローの各部分を通過すると、ファイル名とそのフォルダ内で作成された時刻を示すテキストファイル(フロー内の1つのテキストファイル)が更新されます。ファイルが通過しているときや、トラッカーのテキストファイルに書き込んでいるときは、予測できません。私の目標は、ユーザーがまったく同じ時刻に書き込まれているテキストファイルからの読み込みを試みた場合に、ファイルを同時に読み書きできるようにすることです。どうすればこれを達成できますか?StreamWriterでTextWriterを同時に使用して読み込み/書き込みを同時に実行する
//Write to File
private void WriteToFile(string info,string path,string tr)
{
if (!File.Exists([email protected]"\"[email protected]))
{
var myFile =
File.Create(path + @"\" + @tr);
myFile.Close();
TextWriter tw = new StreamWriter(path + @"\" + @tr, true);
tw.WriteLine(info,true);
tw.Close();
}
else if (File.Exists(path + @"\" + @tr))
{
TextWriter tw = new StreamWriter(path + @"\" + @tr, true);
tw.WriteLine(info);
tw.Close();
}
}
ファイルを読む責任を負うコードを質問に追加できますか?ありがとう! – Snoopy
FileStreamを使用する場合は、ファイルの一部をロックすることができます。https://msdn.microsoft.com/en-us/library/system.io.filestream.lockまたはFileShare.Noneオプションを使用してください。 – Slai