我正在尝试从我的 C# 应用程序测试 Windows8 中的 Internet 连接。我有一个布尔类型的变量,它返回连接状态。当布尔值为真时:什么都不做。当布尔值变为假时,加载我的“ NetworkDisconection
”页面。但是,当我调试这一行时:
if (this.Frame != null)
我得到一个例外:
应用程序调用了为不同线程编组的接口。(来自 HRESULT 的异常:0x8001010E (RPC_E_WRONG_THREAD))
是的,这个方法在不同的线程上。我该如何解决这个问题?
private bool bConection;
public HUB()
{
this.InitializeComponent();
bConection = NetworkInformation.GetInternetConnectionProfile()!= null;
NetworkInformation.NetworkStatusChanged += NetworkInformation_NetworkStatusChanged;
}
void NetworkInformation_NetworkStatusChanged(object sender)
{
if (NetworkInformation.GetInternetConnectionProfile() == null)
{
if (bConection == false)
{
bConection = true;
}
}
else
{
if (bConection == true)
{
bConection = false;
if (this.Frame != null)
{
Frame.Navigate(typeof(NetworkDisconection));
}
}
}
}