0

C# を学び始めたばかりで、Java プログラマーです。Java では、次のことができます。

    int corePoolSize = 1;
    long initialDelay = 0;//0 seconds
    long delay = 60;//60 seconds
    ScheduledThreadPoolExecutor stpe = new ScheduledThreadPoolExecutor(corePoolSize);
    stpe.scheduleWithFixedDelay(new MyDemoClass(), initialDelay, delay, TimeUnit.SECONDS);

これにより、Runnable の「MyDemoClass」が 60 秒ごとにバックグラウンド スレッドで実行されます。

C#でこれを行うにはどうすればよいですか? その ThreadPool http://msdn.microsoft.com/en-us/library/3dasc8as(v=vs.80).aspxを見てきましたが、探しているものではないようです。

どうもありがとうございました

4

2 に答える 2

1

System.Threading.Timer http://msdn.microsoft.com/en-us/library/system.threading.timer.aspxを探していると思います

「TimerCallback デリゲートを使用して、Timer で実行するメソッドを指定します。タイマー デリゲートは、タイマーの構築時に指定され、変更できません。メソッドは、タイマーを作成したスレッドでは実行されません。ThreadPool で実行されます。システムによって供給されたスレッド。」

于 2013-02-26T15:44:55.143 に答える
1

必要な定期的なロジックを実行するイベント ハンドラーに関連付けられたSystem.Timers.Timerを使用します。IntervalElapsed

Timer コンポーネントはサーバー ベースのタイマーであり、アプリケーションで Elapsed イベントが発生する繰り返し間隔を指定できます。その後、このイベントを処理して、通常の処理を提供できます。たとえば、1 日 24 時間、週 7 日稼働し続ける必要がある重要なサーバーがあるとします。タイマーを使用してサーバーを定期的にチェックし、システムが稼働していることを確認するサービスを作成できます。システムが応答しない場合、サービスはサーバーの再起動または管理者への通知を試みる可能性があります。

これを行うためにスレッドプールは必要ありません。

于 2013-02-26T15:38:50.187 に答える