diff --git a/tests/src/tracing/eventcounter/eventcounter.cs b/tests/src/tracing/eventcounter/eventcounter.cs index de1a0f0e4170..1569b2ac0b67 100644 --- a/tests/src/tracing/eventcounter/eventcounter.cs +++ b/tests/src/tracing/eventcounter/eventcounter.cs @@ -41,6 +41,7 @@ internal sealed class SimpleEventListener : EventListener public string displayName; public string displayUnits; public int callbackCount; + public ManualResetEvent sawEvent; public SimpleEventListener(string targetSourceName, EventLevel level) { @@ -53,6 +54,7 @@ public SimpleEventListener(string targetSourceName, EventLevel level) means = new HashSet(); args = new Dictionary(); args.Add("EventCounterIntervalSec", "1"); + sawEvent = new ManualResetEvent(false); } protected override void OnEventSourceCreated(EventSource source) @@ -89,6 +91,7 @@ protected override void OnEventWritten(EventWrittenEventArgs eventData) } } } + sawEvent.Set(); callbackCount++; } } @@ -108,6 +111,7 @@ public bool validateMean() public static int Main(string[] args) { + // Create an EventListener. using (SimpleEventListener myListener = new SimpleEventListener("SimpleEventSource", EventLevel.Verbose)) { @@ -123,7 +127,7 @@ public static int Main(string[] args) eventSource.WriteOne(); } - Thread.Sleep(3000); + myListener.sawEvent.WaitOne(-1); // Block until we see at least one event if (!myListener.validateMean()) {