public void InvokeTest() { var evt = new ManualResetEvent(false); using (var obj = new NSObject()) obj.Invoke(() => evt.Set(), .2); while (!evt.WaitOne(1)) { NSRunLoop.Current.RunUntil(NSRunLoopMode.Default, NSDate.Now.AddSeconds(1)); } Assert.True(evt.WaitOne(1), "Our invoke was not fired?"); }