C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 22 を表示中)
■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から削除する)

というものですが、これ以外に、いい方法はありますでしょうか?
すみませんが、よろしくお願いいたします。
返信 編集キー/


管理者用

- Child Tree -