public override void Post(SendOrPostCallback d, object?state) { if (d == null) { throw new ArgumentNullException(nameof(d)); } var data = new InvokeState(d, state); var handle = GCHandle.Alloc(data, GCHandleType.Normal); Dispatch.AsyncFunction(Dispatch.MainQueue, GCHandle.ToIntPtr(handle), InvokeCallback); }