ユーザー入力を受け取り、テキストファイルにシリアル化するASP.NETアプリケーションを開発しています。現在、ファイルの書き込み中に2回目の更新要求が来ると、IOExceptionが生成されます。同時ファイル書き込みの処理
このファイルに対する同時更新要求を処理するにはどうすればよいですか?
ユーザー入力を受け取り、テキストファイルにシリアル化するASP.NETアプリケーションを開発しています。現在、ファイルの書き込み中に2回目の更新要求が来ると、IOExceptionが生成されます。同時ファイル書き込みの処理
このファイルに対する同時更新要求を処理するにはどうすればよいですか?
メインスレッドがオブジェクトをキューに追加し、コンシューマがキューをディスクに書き込むプロデューサ - コンシューマを実装できます。
は、書き込みスレッドがブロックされませんので、これは、ロックを使用するよりも優れている
lock (this)
{ は、テキストファイル にそれらをシリアライズ}
を解決するロックを使用してください。ログメッセージにスレッドセーフなキューを使用し、別のバックグラウンドスレッドを実行してキューを消費し、メッセージをファイルに書き込むことができます。その後、コンシューマーでは、ファイルをローリングするなどの機能を実装することもできます。 –