public static bool SpinUntil(MyFunc <bool> condition, int millisecondsTimeout) { ClientSpinWait sw = new ClientSpinWait(); ClientWatch watch = ClientWatch.StartNew(); while (!condition()) { if (watch.ElapsedMilliseconds > millisecondsTimeout) { return(false); } sw.SpinOnce(); } return(true); }