问题描述:
从页面1跳转到页面2,页面2的构造函数中用
bool isNetworkAvailable=( NetworkInterface.NetworkInterfaceType!=NetworkInterfaceType.None ) 的方法检测当前网络是否可用.
由于调用上述方法,需要时间等待,于是在调用上述方法前Popup一个UserControl控件窗口,UserControl控件窗口中有ProgressBar,其中IsIndeterminate属性为True。
页面2构造函数代码大致为:
this.Pop = new Popup();
this.Pop.Child = new MyUserControl();
this.Pop.IsOpen = true;
InitializeComponent();
Dispatcher.BeginInvoke(() =>
{
networkAvailable = NetworkInterface.NetworkInterfaceType != NetworkInterfaceType.None ;
}
);
请问为什么UserControl自定义控件窗口弹出的时候,当中的ProgressBar开始会停顿不动呢?貌似要等到获取到当前网络状态之后才开始动的。原因是什么呢?
不知道这样描述大家清楚不?高手请指教一下啊。
------解决思路----------------------
1,你那么获取网络状态的方式的确很慢。因为每种方式(2G,3G,WIFI什么的)都要试好几秒
2,不太了解ProgressBar的运行机制。