我想在DLL应用程序中使用C#Timer
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
TimeSpan interval = TimeSpan.FromMinutes(5);
dispatcherTimer.Interval = interval;
dispatcherTimer.Start();
但问题是永远不会触发。即使时间是5分钟,也永远不会触发方法dispatcherTimer_Tick
。什么都没有错误。
知道为什么吗?我正在使用.net 4.0
答案 0 :(得分:2)
改为使用System.Timers.Timer
,
System.Timers.Timer myTimer = new System.Timers.Timer(5 * 60 * 1000);
myTimer.Elapsed += new ElapsedEventHandler(myTimer_Elapsed);
myTimer.Enabled = true;
myTimer.Start();
这适用于所有应用程序类型,无论应用程序是Web,控制台,WPF等,您都不必担心它所使用的环境或应用程序。
答案 1 :(得分:1)
要使DispatcherTimer
生效,您的应用必须运行消息泵。如果它是控制台应用程序或Web应用程序,则没有消息泵,因此DispatcherTimer
无效。
DispatcherTimer
旨在用于WPF应用程序。如果您在没有用户界面的应用程序中需要计时器,请使用System.Threading.Timer
或System.Timers.Timer
。