using System; using System.Threading; class MainClass { private static void EventHandler(object state, bool timedout) { Console.WriteLine("timedout:"+timedout); Console.WriteLine("state:"+state); Console.WriteLine(DateTime.Now.ToString("HH:mm:ss.ffff")); } public static void Main() { AutoResetEvent autoEvent = new AutoResetEvent(false); string state = "AutoResetEvent signaled."; RegisteredWaitHandle handle = ThreadPool.RegisterWaitForSingleObject( autoEvent, EventHandler, state, 3000, false); Thread.Sleep(5000); autoEvent.Set(); Console.WriteLine("Unregistering wait operation."); handle.Unregister(null); } }
timedout:True state:AutoResetEvent signaled. 14:14:00.0937 Unregistering wait operation.