using System; using System.Threading; using Microsoft.Win32.SafeHandles; class Program { static void Main () { AutoResetEvent are1 = new AutoResetEvent (false); SafeWaitHandle swh1 = are1.SafeWaitHandle; are1.SafeWaitHandle = null; Console.WriteLine ("#1:" + (are1.SafeWaitHandle != null)); Console.WriteLine ("#2:" + (((int) are1.Handle) == -1)); Console.WriteLine ("#3:" + (are1.SafeWaitHandle.IsInvalid)); Console.WriteLine ("#4:" + (!are1.SafeWaitHandle.IsClosed)); Console.WriteLine ("#5:" + !swh1.IsClosed); } }