/// <summary>
 /// Signals the object and waits for another.
 /// </summary>
 /// <param name="obj">The object to wait for.</param>
 /// <param name="timeout">A time to wait until.</param>
 public WaitStatus SignalAndWait(NativeObject obj, DateTime timeout)
 {
     return((WaitStatus)_handle.SignalAndWait(obj.Handle, false, timeout.ToFileTime(), false));
 }
 /// <summary>
 /// Signals the object and waits for another.
 /// </summary>
 /// <param name="obj">The object to wait for.</param>
 public WaitStatus SignalAndWait(NativeObject obj)
 {
     return((WaitStatus)_handle.SignalAndWait(obj.Handle));
 }
 /// <summary>
 /// Signals the object and waits for another.
 /// </summary>
 /// <param name="obj">The object to wait for.</param>
 /// <param name="timeout">A timeout value, in milliseconds.</param>
 public WaitStatus SignalAndWait(NativeObject obj, int timeout)
 {
     return((WaitStatus)_handle.SignalAndWait(obj.Handle, false, timeout * Win32.TimeMsTo100Ns));
 }