プロセスが3つあり、特定のファイルに順番に書き込み、プロセスがファイルを書き込もうとしているときに(書き込みの途中で)、別のファイル2つのプロセスに問題がある場合は、プロセスの順序を制御するサーバープロセスを追加し、プロセスが終了するとイベントが発生するため、プロセスが終了したときにこのイベントでどのようにソース(ファイルアクセス)を解放できますか。 File.Release(FilePath);
ファイルへのアクセスを解放する
編集のようなもの:
書き込みには、以下のようにファイルへ:
try {
if(!File.Exists(FilePath))
throw new Exception("File does not Exist.");
bool Clear = false;
using(StreamReader sr = new StreamReader(FilePath)) {
if(sr.ReadToEnd().Length > 1200)
Clear = true;
}
if(Clear)
using(StreamWriter sw = new StreamWriter(FilePath, false)) {
sw.WriteLine(Text);
sw.Flush();
} else
using(StreamWriter sw = new StreamWriter(FilePath, true)) {
sw.WriteLine(Text);
sw.Flush();
}
} catch(Exception ex) {}
ファイルに書き込むコードを表示します。基本的には、ファイルに書き込むときに、書き込みアクセス権でそのファイルのハンドルを開きます。誰もそのファイルに書き込むことはできません。しかし、書き込みが終わったら、ハンドルを解放する必要があります(通常はDisposeまたはCloseを呼び出すか、コードを 'using'ブロックに入れます)。 – oleksii
@oleksii I Update itの質問を参照してください。 – Saeid
Oleksiiによると、キーワード "using"を使用します。これは暗黙のうちに、ハンドルが維持され、作業が完了したときにそれを廃棄するIdisposableを意味します。それがベストプラクティスです。データベース接続と同じ方法で使用されます。 – King