この問題で最善の方法を進める方法がわかりません。Windowsサービス内のスレッド内のタイマー
今私は唯一のタスクは、特定のDSNでデータベースからデータを収集し、そのデータが有効であれば、メールを送信することで、Windowsのサービスを提供しています。このサービスには、5分ごとにチェックを入れ、上記のタスクを実行するタイマーが含まれています。
は今、私は以上の1つのDSN上で実行できるようにするには、Windowsのサービスを再作成する必要があります。 私はWindowsサービスの中でいくつかのスレッドを作って、それぞれのスレッドの中にseperatタイマーを持っていると考えていました。 これは良い考えですか?これはどのようにしてできますか?私は、各DSNにWindowsサービスを持たないようにしたい。私はいかなる意味
を作るいけない場合病気、それを描くしよう
Windows Service
スレッド1(DSN1)------------------------ -----スレッド2(DSN2)----------------------スレッド3(DSN3)
タイマー(X minutsごとにティック)------ -----------タイマー(同じ)-------------------------タイマー(同じ)
ロジック() - - - - - - - - - - - - - - - - - - - - - - - 論理 - - - ---------------------------- Logic()
私の問題が理にかなっていることを祈っています。
@ jrbによると、タイマーの代わりにBackGroundWorkerを使用することもできます。 –
+1。これは、この文脈では、実際のスレッドを持つことにも意味をなさない。何のために一体?彼らは待っていますか?タイマーは必要に応じてスレッドを取得します。 – TomTom
フィードバックのおかげで、タイマー自体がスレッドを表していることに気づいていませんでした。だから私は完全にスレッドの部分を残すことができますか?バックグラウンドワーカーもスレッドを使用しているので、なぜそれを使用しますか?私が遭遇したもう一つの質問は、私のサービスを止めるときにスレッドを閉じる方法でしたが、スレッドは必要ありませんがタイマーしか必要ない場合、これはもう問題ありませんか? – Thomas