/// <summary> /// Waits for the workflow to reach the unloaded state. /// </summary> /// <param name="timeout">The timeout.</param> /// <returns></returns> public bool WaitOne(TimeSpan timeout) { SynchronizationContext.ExecuteQueue(timeout); var ret = Unloaded.WaitOne(0); lock (Result) { if (Result != null && Result.Error != null) { throw Result.Error; } } return(ret); }