-2

いくつかのスケジュールされたタスクを実行する C# アプリを作成します。実際に必要なのは、日付と時刻を継続的に監視し、毎月 28 日に関数を 1 回呼び出してから、次の 28 日まで辛抱強く待つことだけです。来る月。

何らかの方法で System.Threading.Thread.Sleep() を使用すると思いますが、実行する必要がある特定の条件と、問題の日付に複数回実行されないようにする方法については、私は知りません承知しました...

どんな助けでも大歓迎です:)

4

2 に答える 2

5

毎月 28 日にコンソール アプリを実行する Windows スケジュール タスクを設定できます。
アプリは実行間でリソースを消費しないため、シンプルで簡単で、サーバーのリソースが軽くなります。

PC がダウンしている場合は、次のオプションにチェックを入れることもできます。

タスクの実行方法をカスタマイズするための膨大な数のオプションがあります。

  1. ユーザーがログオンしているときにのみ実行されます。
  2. プログラム パラメータを指定します。
  3. コンピュータが AC 電源に接続されている場合にのみ、タスクを開始してください。
  4. 次のネットワーク接続が利用可能な場合にのみ、タスクを開始してください。

Windows のすべてのバージョンですべてのオプションを使用できるわけではありません。

于 2012-10-26T16:14:41.520 に答える
-6

毎秒実行して日付をチェックするループを使用し、指定された日付に行動して翌月を待つことができます。System.Threading.Thread.Sleep() を使用して、1 秒間待機させます。

最後の日付を追跡し、それに 1 か月を追加して次の日付を計算することで、次の日付を待つことができます。

           DateTime? counter = null;

            while (1 = 1)
            {
                if (DateTime.Now.Day == 28 && (!counter.HasValue || counter.Value.Date < DateTime.Now.Date ))
                {
                    counter = DateTime.Now;

                    DoSomething();
                }

                Thread.Sleep(1000);
            };
于 2012-10-26T16:14:12.083 に答える