2010-12-20 12 views
0

ファイルの終わりに達して、 を待つ必要があるときに、スレッドがC#でファイル入力を待機する通常のパターンは何ですか?それをコーディングする方法はきわめてきれいでエレガントです。ファイル入力パターンのスレッド待機

ありがとうございました。 ボブ。

+0

何をしようとしているのか、さらにどのように情報を提供してください。 – Jon

+0

本質的に私は、(タイムアウトの可能性がある)ブロックする方法を探しています。 –

答えて

1

本当にパターンが、FileSystemWatcherhttp://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx)が便利になるかもしれません。

+0

私はそれを過去と間違った場所/間違った時間に使ってきました。私はスレッドリーダーを持って、ファイルを読んでいる。共有読み書き用に開かれています。 –

+0

FileSystemWatcherは、まともなカーネルファイル変更イベントリスナですが、ポーリング時間は少し不確定です。ファイルサイズの変更をダブルチェックするためにFileInfoと組み合わせて使用​​する価値があります。 –

1

私は他の答えが何であるか見ることに興味があります。私は洗練されたソリューションを見つけられませんでした。ここに私が過去にしたことがあります。

  1. ファイルを排他的に開くようにしてください。ファイルが他の場所で開かれている場合、これは失敗します。
  2. 再試行ループがあります.... sleep Xミリ秒... Y回再試行してください。通常、私はX &をコンフィギュレーションファイルにプルします。

これが役に立ちます。

ボブ

+0

それは私が使用しているアプローチです。それが提供するもう1つの利点は、ファイルライターが完了するまで待たなければならないことです。遅いリンクを経由してくる大きなファイルの場合は重要です。しかしOPは共有読み書きが必要なので、最後の有効な位置からバイト数> 0をポーリングします。それは十分にエレガントです。 –

関連する問題