2011-06-28 9 views
0

私は再帰タスクをスケジュールする必要があります。私のアプリケーションはMFCにあります。たとえば、「From Date」「To Date」「Frequency」「Start Time」「End Time」の特定の場所にファイルを送信する必要があるかもしれません。私はリストを持っていると思って、そこにこれらのパラメータを追加し、毎秒経過するタイマーを作成します。私は条件のリストをチェックし、ファイル転送を呼び出すことができます。しかし、問題はリストが巨大であれば、私はそれをすることができないかもしれないということです。これを達成する他の方法はありますか?タスクスケジューラの作成

+1

なぜシステムタスクスケジューラを使用しないのですか? –

答えて

0

スケジュールされたイベントの優先キューを作成し、各「スケジュール」に対して、その「スケジュール」のNEXTイベントのみでキューを埋める。優先順位キューの最初のEVENTだけを待ってください。使用されている場合は、そのイベントのスケジュール項目を参照し、次のイベントをキューに入れさせます。

上記のものがさらに明確になる必要があるかどうか尋ねてください。

EDIT:

あなたが最も快適であるかによって、特定の日時に、あなたのイベントをトリガします。待つ必要があるイベントは1つだけです(キューのHEADからコピーできます)。

  • SetTimer()を1秒間隔で実行します現在の時刻とイベント時刻を比較します。
  • 現在の時刻からイベント時刻の間、SetTimer()を呼び出します。
  • にあなたがメインスレッド
  • 上で何かを呼び出すときに注意する必要がありますので、これは最も難しいだろう...と -
  • はeventi_time、今のように計算遅延で別のスレッド、それの内部のWaitForSingleObjectを、開始
+0

特定の日時にイベントをトリガーする方法は? – Jeeva

+0

あなたの更新のためにダニエルがありがとう、問題は1つのイベントに過ぎないということです。私はスケジュールされた項目のリストを持っています。 – Jeeva

+0

はい、私が述べたように、残りのスケジュールを処理する優先度キューにスケジュールリストが変換されます。 –

関連する問題