C# アプリケーションから Windows8 でインターネット接続をテストしようとしています。接続ステータスを返すブール型の変数があります。ブール値が true の場合: 何もしません。ブール値が false になったら、私の " 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));
}
}
}
}