0
我正在編寫一個在.Net4.0上使用C++ CLI的應用程序我有一個事件處理程序,可以在任何隨機時間引發一個事件 只有當事件發生在特定時間範圍內時,該事件纔是有用的應該在一段時間內發生一次) 我需要檢查事件是否在過去的時間間隔內提升一次。如果沒有在特定的時間間隔內提出,我會提出一個例外。如何檢查某個事件是否在特定時間範圍內發生?
我試圖實現這樣的:
- 一個布爾標誌變量添加到類
- 在事件處理程序,設置 標誌=真
- 要做到檢查我有一個計時器事件:
- 計時器事件引發埃維200毫秒
- 檢驗該標誌爲true
- 如果是 真它設置一個計數器爲0
- 計時器事件,然後將標誌設置爲false
- 如果發現該標誌爲假時,計數器加一
- 計數器是否已經達到了一個極限(說三),那麼它拋出異常。
但是,我發現它給出了誤報。 Thios可能發生是因爲事件被阻止或什麼?
有沒有人知道更好的方法來做到這一點?我想知道是否有一些方法可以在沒有外部計時器事件(或線程)的情況下完成,因爲它可能會中斷其他線程。
在此先感謝。
我不確定我的評論是否可以幫助你,但是你是否嘗試讓事件處理程序在構造函數中用靜態標誌創建靜態檢查器類的對象?每個對象創建過程都會增加靜態標誌。然後您可以比較標誌的值和時間範圍。 – Aan