Hans和我最近就这个问题进行了一些小讨论,我很好奇它是如何实现的。
请参阅此处的评论中的初步说话:Are c# timers naturally multithreaded?
答案 0 :(得分:2)
盯着.Net 4.0参考源,System.Timers.Timer
似乎使用System.Threading.Timer
来处理实际的实现细节。后者通过调用AddTimerNative
生成计时器。 AddTimerNative
是内部电话。
Google搜索AddTimerNative
会带来很多有趣的结果,包括Willy Denoyette的评论,其中他声称它会调用CreateTimerQueueTimer。
该页面指出“回调函数排队到线程池。”
答案 1 :(得分:2)
好吧,我做了一些调查......详细信息在我的blog post
中简而言之,只是从那里总结: