Hans和我最近就這個問題進行了小範圍的討論,我很好奇它是如何真正實現的。CLR是否內部產生一個線程來響應計時器事件?
見這裏的評論初始說話:Are c# timers naturally multithreaded?
Hans和我最近就這個問題進行了小範圍的討論,我很好奇它是如何真正實現的。CLR是否內部產生一個線程來響應計時器事件?
見這裏的評論初始說話:Are c# timers naturally multithreaded?
好吧,我做了一些調查......詳細信息可在我blog post
短,從那裏剛總結:
凝望.NET 4.0的參考源,System.Timers.Timer
似乎用一個System.Threading.Timer
處理實際的實施細則。後者通過調用AddTimerNative
來生成定時器。 AddTimerNative
是一個內部電話。
使用谷歌搜索AddTimerNative
導致了很多有趣的結果,其中包括Willy Denoyette的評論,他在那裏說,它調用CreateTimerQueueTimer。
那頁指出「回調函數排隊到線程池」
Downvote因爲單看這個問題和答案根本不提供任何信息。我必須去看另一個線索,以獲得在接受的答案中引用的「漢斯」的任何輸入,並且我必須去你的博客以獲得關於它如何工作的任何細節。 – Thymine 2012-04-25 19:30:43