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;
}