丁寧な回答どうもありがとうございます。お二方への同時返信である旨、失礼かとは思いますがご容赦願います。スレ主さんは理解できたのかな?すみません。半分も理解できていないと思います。そこで、数点質問させていただけますでしょうか。質問の前に念のため、作成しようとしている監視の内容について概要をお伝えいたします。●DBが動作しているサーバ上で動くサービス。●監視は数分おきのポーリングで行う。●監視フォルダにXMLファイルが存在する場合、以下の処理を行う。大雑把にこんな感じのものです。基本的に軽く動作するように実装したく思っております。シングルスレッド同期ファイルアクセスが最高であろうと思われます。速度が足りないときはファイルアクセスを非同期にして増やすのがいいでしょう。いうことで、変わりありませんでしょうか。「作業を行うスレッド」というような意味合いで間違いありませんでしょうか。それとも、何か実装方法など、特別な方法をとったもののことなのでしょうか。「ワーカースレッド」そのものに対する説明を見つけられず、意味を正確に理解することができておりません。お手数ですが、教えていただけると助かります。�ASystem.Windows.Forms.Timerは使わないべきである点は理解できました。定期的に処理するのが一番楽で軽いですね。Sleepは重くないですし、それほどいい加減でもないので。シングルスレッド化しないといけません。イベントを通知するのが普通かと思います。・System.Timers.Timerを使用する。・Sleepを使用する。(Thread.Sleepをタイマー代わりに使用するということでしょうか?)という2択を示してくださった、という認識で間違いありませんでしょうか。「ロックオブジェクト」「クリティカルセクション」についても(言葉の意味から)理解できていないのですが下の�Cで説明してくださっている内容に含まれている意味のものでしょうか。booleanを一個用意。Timerイベント先頭でInterlockedクラスを用いてinteger型をチェック。再入してるなら何もせずに帰る。再入してないなら監視タスクを実行。監視タスクが終わったら再入フラグをクリア。AutoResetEventを用意。TimerイベントではEventをセットするだけ。ワーカースレッドはEventを待つ。イベントが通知されたら監視タスクを実行。監視タスクが終わったらまたAutoResetEventを待つ。今回始めて知りました。情報ありがとうございます。これら上記どちらの方法を使用しても、同じ処理(タイマイベントで処理実行時、次のタイマイベントが発生しても、後のイベントは何もしない)を行うことができるという認識で間違いありませんでしょうか。4点も申し訳ありません。回答を待つ間、自分でも再度いろいろ調べたり、テスト実装してみて勉強してみようと思います。お手数ですが、回答いただけるととても助かります。