.net - C++ .net 定时器中使用的加等号是什么

标签 .net timer c++-cli

我正在尝试学习如何使用 C++ .net 计时器。在此处给出的示例中:

http://msdn.microsoft.com/en-us/library/system.timers.timer.elapsed.aspx

在代码中这样写:

// Hook up the Elapsed event for the timer.
aTimer->Elapsed += gcnew ElapsedEventHandler( Timer1::OnTimedEvent );

+= 似乎重载了。在这种情况下这意味着什么?

我也不明白为什么在链接的示例中,计时器会重复启动和停止,如输出所示:

 The Elapsed event was raised at 5/20/2007 8:42:27 PM
 The Elapsed event was raised at 5/20/2007 8:42:29 PM
 The Elapsed event was raised at 5/20/2007 8:42:31 PM

根据我的理解,它应该只启动和停止一次。

最佳答案

它正在向计时器的 Elapsed 事件添加一个事件处理程序。

它类似于:

aTimer->Elapsed.AddHandler(gcnew ElapsedEventHandler(Timer1::OnTimedEvent));

如果有这样的功能的话。

定时器调用 ElapsedEventHandler 的构造函数中指定的函数来通知用户设置的时间已过。

关于您的第二个问题,文档中的第一段对此进行了解释:

If Enabled is set to true and AutoReset is set to false, the Timer raises the Elapsed event only once, the first time the interval elapses.

很明显,逻辑上相同的语句是:如果 AutoReset 设置为 true,则计时器将无限期地引发 Elapsed 事件。

此外,您可以将 AutoReset 设置为 false,并从事件处理程序中调用 Reset() 函数。这使您可以确保计时器回调不会重叠。

关于.net - C++ .net 定时器中使用的加等号是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13652617/

相关文章:

c# - ClickOnce 部署无法在 Windows XP 上安装 .NET 4 Full

c# - ServiceBase.Run(ServiceBase[] ) 方法是否异步运行数组中的所有服务?

c - PIC32MZ 上的 Microchip Harmony 时序问题

.net - 销毁具有静态存储持续时间的本地对象

c++-cli - C++/CLI:Console::WriteLine() 还是 cout?

c# - C++ CLR 托管 DLL,包含要在 C# 中使用的模板类

.net - 如何连接到双击 Ctrl 键?

.net - MSBuild 无法解析 COM 引用。为什么?

javascript - jquery - 添加与 HTML div 关联的多个计时器

ios - 不断检查变量变化