/// <summary>
 /// Wait until WakeupEvent has been set
 /// If you need timeout params or WaitAny, please access to WakeupEvent itself
 /// </summary>
 public void WaitUntilWakeup()
 {
     WakeupEvent.Reset();
     WakeupEvent.WaitOne();
 }