waitforsingleobject (kernel32)
Last changed: -186.136.223.176

.
Summary

C# Signature:

[DllImport("kernel32", SetLastError=true)]
  static extern Int32 WaitForSingleObject(IntPtr handle, Int32 milliseconds);

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

  const UInt32 INFINITE = 0xFFFFFFFF;
  const UInt32 WAIT_ABANDONED = 0x00000080;
  const UInt32 WAIT_OBJECT_0 = 0x00000000;
  const UInt32 WAIT_TIMEOUT = 0x00000102;

and use:

  WaitForSingleObject(handle, (int)INFINITE);


Sample Code:

private void Run()
{
  while (bRunning)
  {
   try
    {
     if(WaitForSingleObject(ReceivedEvent,INFINITE) == WAIT_OBJECT_0)
     {
      // Signaled            
      DoSomething();
     }
    }

    catch(Exception Ex)
    {
     // An exception occurred
     //
     trhow(Ex);
    }
   }
}

Alternative Managed API:

If you have a System.Diagnostic.Process object (possibly created by Process.Start), call Process.WaitForExit().

If you're waiting on a file system object, look at System.IO.FileSystemWatcher

System.Threading.WaitHandle and derivatives (e.g. AutoResetEvent)

Documentation