0
我正在嘗試在win8中構建通用應用程序,其中一個功能是顯示連接狀態。狀態顯示爲一個按鈕,如果處於活動狀態,則爲「綠色」,如果處於非活動狀態,則爲「紅色」通用應用程序網絡連接狀態
這裏是網絡檢測代碼:
public class InternetConnectionChangedEventArgs : EventArgs
{
public InternetConnectionChangedEventArgs(bool isConnected)
{
this.isConnected = isConnected;
}
private bool isConnected;
public bool IsConnected
{
get { return isConnected; }
}
}
public static class Network
{
public static event EventHandler<InternetConnectionChangedEventArgs>
InternetConnectionChanged;
static Network()
{
NetworkInformation.NetworkStatusChanged += (s) =>
{
if (InternetConnectionChanged != null)
{
var arg = new InternetConnectionChangedEventArgs(IsConnected);
InternetConnectionChanged(null, arg);
}
};
}
public static bool IsConnected
{
get
{
var profile = NetworkInformation.GetInternetConnectionProfile();
var isConnected = (profile != null
&& profile.GetNetworkConnectivityLevel() ==
NetworkConnectivityLevel.InternetAccess);
return isConnected;
}
}
}
所以在最後我調用函數來設置按鈕的顏色,但卻系統拋出一個異常,指出「應用程序正在使用線程編組爲一個不同的線程「
這是Main()構造函數中的代碼。
該應用拋出異常一旦網絡電纜被拉離..
Network.InternetConnectionChanged +=async(s,e)=>
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() =>
{
isInternetON=e.IsConnected;
});
SetConnectionStaus(isInternetON);
};
我的猜測是我打電話一個線程從ANOTHER同時更新按鈕的顏色..... KINDLY幫助!