0
我正在编写一个在.Net4.0上使用C++ CLI的应用程序我有一个事件处理程序,可以在任何随机时间引发一个事件 只有当事件发生在特定时间范围内时,该事件才是有用的应该在一段时间内发生一次) 我需要检查事件是否在过去的时间间隔内提升一次。如果没有在特定的时间间隔内提出,我会提出一个例外。如何检查某个事件是否在特定时间范围内发生?
我试图实现这样的:
- 一个布尔标志变量添加到类
- 在事件处理程序,设置 标志=真
- 要做到检查我有一个计时器事件:
- 计时器事件引发埃维200毫秒
- 检验该标志为true
- 如果是 真它设置一个计数器为0
- 计时器事件,然后将标志设置为false
- 如果发现该标志为假时,计数器加一
- 计数器是否已经达到了一个极限(说三),那么它抛出异常。
但是,我发现它给出了误报。 Thios可能发生是因为事件被阻止或什么?
有没有人知道更好的方法来做到这一点?我想知道是否有一些方法可以在没有外部计时器事件(或线程)的情况下完成,因为它可能会中断其他线程。
在此先感谢。
我不确定我的评论是否可以帮助你,但是你是否尝试让事件处理程序在构造函数中用静态标志创建静态检查器类的对象?每个对象创建过程都会增加静态标志。然后您可以比较标志的值和时间范围。 – Aan