我在考虑定时器是如何工作的,还有一些我不完全理解的东西
Timer
使用在时间过去时调用的事件。我假设这是由控制时钟的OS事件触发的(或由时钟控制)
但是我不确定哪个线程会抓住那个事件..
Timer
对象是否有自己的主题?
或者是否会在创建计时器对象的线程中调用该事件?
编辑:
System.Timers.Timer
和System.Windows.Forms.Timer
之间的这方面是否存在差异?
答案 0 :(得分:9)
取决于Timer
。如果使用System.Windows.Forms.Timer
,则会在UI线程中处理tick事件。在System.Threading.Timer
和System.Timers.Timer
中,它默认为线程池线程。但是,在后一种情况下,您可以指定SynchronizingObject
,可用于将处理程序封送到适当的线程。