C# 可达性:两次调用TryGetFlags时为空标志
我有以下代码来测试网络连接:C# 可达性:两次调用TryGetFlags时为空标志,c#,iphone,xamarin.ios,ios-simulator,reachability,C#,Iphone,Xamarin.ios,Ios Simulator,Reachability,我有以下代码来测试网络连接: if(remoteHostReachability==null){ remoteHostReachability=新的网络可达性(主机名); //我们需要在排队之前进行探测,否则我们将无法获得任何有意义的值 //仅当您从主机名创建网络可达性时才会发生这种情况 可访问=remoteHostReachability.TryGetFlags(输出标志); //remoteHostReachability.SetCallback(OnChange); remoteHostR
if(remoteHostReachability==null){
remoteHostReachability=新的网络可达性(主机名);
//我们需要在排队之前进行探测,否则我们将无法获得任何有意义的值
//仅当您从主机名创建网络可达性时才会发生这种情况
可访问=remoteHostReachability.TryGetFlags(输出标志);
//remoteHostReachability.SetCallback(OnChange);
remoteHostReachability.SetNotification(OnChange);
remoteHostReachability.Schedule(CFRunLoop.Current、CFRunLoop.ModeDefault);
}否则{
可访问=remoteHostReachability.TryGetFlags(输出标志);
}
当第一次调用它时,标志是ok。但是,当第二次调用它时,标志始终等于零。在iOS模拟器5.0上测试
有什么问题吗?在的和的示例中,NetworkReachability只创建了一次。我发现在使用Reachability时,我没有测试远程状态,而是确保主机是可访问的
Reachability.HostName = "www.google.com";
var reachable = (Reachability.InternetConnectionStatus() != NetworkStatus.NotReachable) && Reachability.IsHostReachable("www.google.com");
请注意,第一次
TryGetFlags
是从后台线程(InvokeInBackground
)调用。我也想获取状态更改事件,而不是定期检查它。