それぞれの後にアクションを実行する Window-Service を作成しました。タイマーを次のように宣言しました。
using System.Timers;
....
Int32 myInterval = 60000 * (Convert.ToInt32(ConfigurationManager.AppSettings["lpInterval"].ToString()));
_myTimer = new Timer();
_myTimer.Interval = myInterval;
_myTimer.Elapsed += new ElapsedEventHandler(TimerElapsed);
//Timer-Tick
private void TimerElapsed(object source, ElapsedEventArgs e)
{ PerformAction(); }
気付いたこと: (WCF サービスまたはサーバーの問題が原因で)PerformAction()
私よりも時間がかかる場合は、新しいのが起動されて実行されます。したがって、は互いに2 回 (および ) 実行されます。interval
'instance'
PerformAction
PerformAction
parallel
これの原因は何ですか?なぜ前回PerformAction
はキャンセルされないのですか?メソッドPerformAction
は実行されていAsync
ますか?
回避策を見つけましたが、動作がわかりません...