public static bool WaitForWindowToClose(string windowCaption, int timeOut = -1) { waitForWindowToCloseDelegate waitForWindowToCloseDelegate = waitForWindowToCloseHandler; IAsyncResult asyncResult = waitForWindowToCloseDelegate.BeginInvoke(windowCaption, null, null); if (!asyncResult.IsCompleted) { asyncResult.AsyncWaitHandle.WaitOne(timeOut, false); } return(asyncResult.IsCompleted && waitForWindowToCloseDelegate.EndInvoke(asyncResult)); }
/// <summary> /// default timeout is 5000 millisec /// </summary> /// <param name="windowCaption"></param> public static bool WaitForWindowToClose(string windowCaption) { waitForWindowToCloseDelegate waitForWindowToCloseDelegate = waitForWindowToCloseHandler; IAsyncResult asyncResult = waitForWindowToCloseDelegate.BeginInvoke(windowCaption, null, null); if (!asyncResult.IsCompleted) { asyncResult.AsyncWaitHandle.WaitOne(5000, false); } bool b = asyncResult.IsCompleted ? waitForWindowToCloseDelegate.EndInvoke(asyncResult) : false; return(b); }