public void JoinUntilSuspendedByMainLoop () { bool wait = false; lock (forState) { if (this.internalState != ThreadState.Stopped) wait = true; } if (wait) wakeUp.WaitOne (); }