簡體   English   中英

WinForms中的計時器Tick事件和線程

[英]Timer Tick Event and Thread in WinForms

我有一個名為SendTimer的計時器,間隔為30秒。

protected void SendTimer_Tick(object sender, eventArgs e)
{
      SendTimer.Enabled = false;

      TransferMoney();

      System.Threading.Thread.Sleep(15000);

      GenerateTransactions();

      SendTimer.Enabled = true;
}

我希望一個線程能夠同時正確調用tick事件。 不是同時由2個線程。 但正如我在我的LOGS中看到的那樣,它似乎被一個線程調用,而另一個線程正在運行。 任何想法? 因為我分別禁用和啟用它。

Windows窗體定時器是一個單線程的定義。 它沒有多線程,因為它通過WM_TIMER消息過去,被發送到當前的GUI線程消息隊列。

所以這:

不是同時由2個線程

是不正確的,因為即使你有幾個線程,WinForms Timer也與此無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM