■9608 / ) |
Re[2]: System.Timers.Timerでのイベント処理 |
□投稿者/ nbmyou (45回)-(2007/10/31(Wed) 16:23:35)
|
■No9605 (Hongliang さん) に返信 > MSDN の System.Timers.Timer クラスの解説に書かれていますが、その上での質問でしょうか?
回答ありがとうございます。
すみません。MSDNの該当部分をちゃんと読んでいませんでした。 おっしゃっているのは、以下の部分ですよね。 ++++++++++++++++++++ Elapsed イベントは、ThreadPool スレッドで発生します。 Elapsed イベントの処理が Interval よりも長びくと、別の ThreadPool スレッドで同じイベントが再発生する場合があります。 このため、イベント ハンドラは再入可能であることが必要です。 ++++++++++++++++++++
なるほど。別スレッドで動くので 「再入可能」な処理を書かなければならないということですね。
そこで、重ねて質問させてください。 ++++++++++++++++++++ 質問:「同じファイルについて処理しないようにするにはどのようにする方法が考えられますでしょうか」 ++++++++++++++++++++
僕が思いつくものでは、 メンバ変数に「処理中のファイルパス」stringのListを持ち、 ファイル処理を開始する際に、この「処理中のファイルパス」をチェック。 処理中ではなければ、ここに処理するファイルパスを追加し、 処理する。(処理が終わったらListから削除する)
というものですが、これ以外に、いい方法はありますでしょうか? すみませんが、よろしくお願いいたします。
|
|