.Net4.0에서 C++ CLI를 사용하여 응용 프로그램을 코딩하고 있습니다. 임의의 시간에 발생시킬 수있는 이벤트에 대한 이벤트 처리기가 있습니다. 이벤트는 특정 시간 프레임 내에 발생하는 경우에만 유용합니다. 한 번에 한 번 발생해야 함) 이벤트가 과거 간격으로 한 번 올랐는지 확인해야합니다. 특정 시간 간격으로 제기하지 않은 경우 예외가 발생합니다. 나는 이런 식으로 구현 시도특정 시간 내에 이벤트가 발생했는지 확인하는 방법은 무엇입니까?
:
이- 클래스 이벤트 핸들러에서
- 에 부울 플래그 변수를 추가,
- 은 내가이있는 검사를 수행하려면 = true로 플래그를 설정 타이머 이벤트 :이 경우 타이머 이벤트가 이비 200 밀리 발생
- 는
- 그것은 플래그는
- 사실 여부 검사 이 카운터가 한계에 도달하면 플래그는 카운터
- 를 증가 거짓임을 알면은 0
- 타이머 이벤트에 대한 카운터 설정 사실 는 (예를 들어 3 개) 다음 거짓
- 에 플래그를 설정 예외를 throw합니다.
그러나 오탐 (false positives)을 발견했습니다. Thios는 이벤트가 차단 되었기 때문에 발생합니다.
누구나 더 좋은 방법을 알고 있습니까? 나는 외부 타이머 이벤트 (또는 스레드)없이 다른 스레드를 인터럽트 할 수있는 방법이 있는지 알고 싶습니다.
미리 감사드립니다.
내 의견을 도울 수 있는지 잘 모르겠지만 생성자에서 static 플래그가있는'static' 검사기 클래스의 개체를 만들려면 이벤트 처리기를 만들려고 했습니까? 각 객체 생성 프로세스는 정적 플래그를 증가시킵니다. 그런 다음 플래그의 값과 시간 프레임을 비교할 수 있습니다. – Aan