我想知道在C#应用程序中可以使用哪种计时器,以及它们在多线程环境中对于cuncurrency的影响。
你能解释一下我或者把我链接到一个有用的教程吗?
谢谢。
答案 0 :(得分:7)
有两种形式的计时器 - 基于消息的,通常以UI为中心,以及基于线程的计时器。
UI版本为Timer class from Windows Forms或DispatcherTimer in WPF。这些往往会在UI线程上报告时间(通常),并且基本上使用标准消息泵来处理时间。
System.Timers.Timer和System.Threading.Timer类使用单独的线程来处理计时器。这些工作非常好,但“Tick”事件发生在一个单独的线程上。这意味着如果使用这些,则需要处理线程同步或UI线程同步。