テキストファイルが別のプロセスによって使用されなくなるまでプログラムが待機している間に、最初のプログラムがテキストファイルに書き込む方法はありますか?
4 に答える
2 番目のプログラムでこのクラスを使用してFileSystemWatcher
、最初のプログラムがいつ完了したかを確認できます。FileSystemWatcher
ファイルが作成、変更、または削除されると、イベントがトリガーされます。
詳細: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
最良の方法は、キューとして機能する 3 番目のプログラムを実装することです。最初の 2 つのプログラムはこのプログラムにデータを送信し、テキスト ファイルへの実際の書き込みを行います。
この 3 番目のプログラムは、MSMQ、Windows サービス、一連の Web サービスなど、要件によって異なります。
はい。各論理書き込みをキューの最後に配置します。別のスレッドで、キューの先頭から論理書き込みを読み取り、それらをファイルに書き込もうとします (ファイルを開く、書き込む、ファイルを閉じる)。この間に IOException が発生した場合は、書き込みをキューの先頭に残します。それ以外の場合は、キューの先頭から削除します。両方のプロセスがこのパターンに従う場合、ファイルへの書き込みをインターリーブできます。
競合状態を防ぐため。try-wait-retry オプションを実装する必要があります。
失敗した場合はファイルからの読み取りを試行し、しばらく待ってから再試行してください