System.Timers.Timer 嵌套 System.Windows.Forms.Timer的问题
生活随笔
收集整理的這篇文章主要介紹了
System.Timers.Timer 嵌套 System.Windows.Forms.Timer的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如題“System.Timers.Timer 嵌套 System.Windows.Forms.Timer的問題”,最近在項目中在類uc_Map中啟用了System.Timers.Timer,并在Timer的Timer_Elapsed方法中需要啟動或停止GMapMarkerDirection markerPlane類中的System.Windows.Forms.Timer,但是并沒用在uc_Map啟動/停止成功,經排查,需要在啟動或停止markerPlane中的方法時需要加委托Invoke,如下:
uc_Map中的Timer_Elapsed方法: this.Invoke(new Action(delegate{if (isWarnData){ markerPlane.StartFlash(); }elsemarkerPlane.StopFlash();}));markerPlane類中的方法:
/// <summary>/// 開始閃爍/// </summary>public void StartFlash(){if (bIsFlash == false){flashTimer.Start();bIsFlash = true;}}/// <summary>/// 停止閃爍/// </summary>public void StopFlash(){if (bIsFlash == true){flashTimer.Stop();if (FlashPen != null){FlashPen.Dispose();FlashPen = null;}if (this.Overlay.Control.InvokeRequired){this.Overlay.Control.Invoke(new Action(delegate{this.Overlay.Control.Refresh();}));}elsethis.Overlay.Control.Refresh();bIsFlash = false;}}
這樣就能正常啟動/停止第二個Timer
轉載于:https://www.cnblogs.com/Jins/p/5322070.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的System.Timers.Timer 嵌套 System.Windows.Forms.Timer的问题的全部內容,希望文章能夠幫你解決所遇到的問題。