Description
Describe the bug
Regarding the implementation of NSRunloopScheduler https://github.com/reactiveui/ReactiveUI/blob/master/src/ReactiveUI/Platforms/apple-common/NSRunloopScheduler.cs, NSRunLoopScheduler uses NSTimer.Invalidate in the disposable returned for Schedule() calls: https://github.com/reactiveui/ReactiveUI/blob/master/src/ReactiveUI/Platforms/apple-common/NSRunloopScheduler.cs#L68.
The Apple developer documentation https://developer.apple.com/documentation/foundation/nstimer/1415405-invalidate?language=objc states:
You must send this message from the thread on which the timer was installed. If you send this message from another thread, the input source associated with the timer may not be removed from its run loop, which could prevent the thread from exiting properly.
The Xamarin documentation for NSTimer.Invalidate() does not mention this requirement, but I suspect the documentation in incomplete: https://developer.xamarin.com/api/type/MonoMac.Foundation.NSTimer/.
I am not sure there is a problem here, TBH. Just noting the concern.