public void RunAsync(Action<Waiter> a) { EnqueueCallback(() => { var w = new Waiter(TestComplete); a(w); w.Wait(); }); }