0

15 分ごとに実行され、iOS、Android、および BlackBerry ユーザーにプッシュ通知を送信する Windows サービスを開発しています。これらのデバイス固有の各操作は、Windows サービスの個別のスレッドで実行されます。これで問題ありませんが、一度に最大 50,000 件のプッシュ通知を送信する必要がある可能性があります。これが発生すると、15 分以上かかる可能性があるため、次のサービスが実行される前に、前のプロセスが終了したかどうかを知りたいです。終了していない場合は、Windows サービスの実行を待ち、キューに入れます。前の実行が完了したら。スレッド化に関しては問題ありませんが、上記のシナリオを実装する正しい方法がわかりません。C#にはある種の「待機」または「キュー」メカニズムがありますか?

4

1 に答える 1

1

サービスは を使用しTimerて作業をスケジュールしているため、作業の開始時にタイマーを無効にし、必要に応じて作業の終了時に再スケジュールすることができます。

これにより、多くの柔軟性が得られます。作業のキューに 15 分以上かかった場合は、次の作業を遅らせるか、すぐに開始するか (「永久に」実行される可能性があります)、完全にスキップするか、タイマーが再度実行されないため、必要に応じて何でも行うかを決定できます。再び有効になるまで。

于 2013-07-23T00:33:58.760 に答える