I'm trying to test the Internet connection in Windows8 from my C# application. I have a variable of type Boolean that returns me the connection status. When the boolean is true: do nothing. When the boolean becomes false, load my "NetworkDisconection" page. However, when I debug this line:
if (this.Frame != null)
I get an exception:
The application called an interface that was marshalled for a different thread. (Exception from HRESULT: 0x8001010E (RPC_E_WRONG_THREAD))
Yeah, this method is on a different thread. How can I resolve this?
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));
                }
            }
        }
    }
 
     
     
    