我将此代码与NetworkReachability类一起使用,以确定网络连接是否已更改。

remoteHostReachability = new NetworkReachability(HostName);
reachable = remoteHostReachability.TryGetFlags(out flags);
remoteHostReachability.SetNotification(OnChange);
remoteHostReachability.Schedule(CFRunLoop.Current, CFRunLoop.ModeDefault);


在某些iOS和/或Xamarin更新后,NetworkReachability停止发送通知(不再调用OnChange)-不能指出确切的原因,因为我不知道它长时间不能正常工作。

现在,我发现使用CFRunLoop.Main而不是CFRunLoop.Current调度这些通知可以解决问题,但是我不知道是否应该担心将其放入主运行循环。

是否有任何缺点,或者对这些通知使用主运行循环是否安全?

最佳答案

万一有人碰上这个线程,想知道我是如何解决这个问题的,我放弃了Reachability类,改用Xamarin.Essentials中的Connectivity。

10-07 18:33