2

我想在 DLL 应用程序中使用 C# Timer

DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
TimeSpan interval = TimeSpan.FromMinutes(5);
dispatcherTimer.Interval = interval;
dispatcherTimer.Start();

但问题是永远不会触发。dispatcherTimer_Tick即使时间为 5 分钟,也不会触发方法。没有任何错误。

知道为什么吗?我正在使用 .net 4.0

4

2 回答 2

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 等,您无需担心使用它的环境或应用程序。

于 2014-01-10T10:23:28.800 回答
1

为了DispatcherTimer工作,您的应用程序必须运行消息泵。如果是控制台应用程序或 Web 应用程序,则没有消息泵,因此DispatcherTimer无法工作。

DispatcherTimer专为在 WPF 应用程序中使用而设计。如果您需要在没有 UI 的应用程序中使用计时器,请使用System.Threading.TimerSystem.Timers.Timer.

于 2014-01-10T10:22:16.547 回答