C# 调度程序错误
我正在编写一个Windows Phone 8.1应用程序(WINRT)。 我正在显示一个状态栏:C# 调度程序错误,c#,multithreading,xaml,oop,windows-phone-8.1,C#,Multithreading,Xaml,Oop,Windows Phone 8.1,我正在编写一个Windows Phone 8.1应用程序(WINRT)。 我正在显示一个状态栏: MYAPP(欢迎) MYAPP(通过WIFI连接) MYAPP(通过手机连接) 如果用户通过Wifi连接,则显示“MYAPP(通过Wifi连接)”;如果用户通过蜂窝连接,则显示“MYAPP(通过蜂窝连接)” 此外,它使用Dispatchermer()在5秒后恢复为默认progressbartext“MYAPP(WELCOME)” 因此,我执行GetInternetConnectionProfile
因此,我执行GetInternetConnectionProfile(),返回\u connectedVia,传递到构造函数中的GetInternetConnectionProfile(\u connectedVia)函数或OnNavigatedTo
Connectivity.GetInternetConnectionProfile();
StatusBarClassObject.StatusBarGenerator(_connectedVia);
在第一次执行页面之前,一切正常
现在,每次网络更改hanppens(Wifi到蜂窝或反之亦然或Wifi到无等),它都会执行NetworkStatusChanged eventhandler,执行过程与构造函数中相同
NetworkInformation.NetworkStatusChanged += new NetworkStatusChangedEventHandler((n) => Connectivity.GetInternetConnectionProfile());
NetworkInformation.NetworkStatusChanged += new NetworkStatusChangedEventHandler((n) => StatusBarClassObject.StatusBarGenerator(_connectedVia));
但问题是:
StatusBarCloseTimer=new Dispatchermer()代码>这次给了我一个错误。第一次执行此操作效果良好
“应用程序调用了为不同线程封送的接口。(HRESULT的异常:0x8001010E(RPC_E_错误的_线程))”
我尝试使用:
await CoreDispatcherObject.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
DispatcherTimerInit();
});
private void DispatcherTimerInit()
{
// throw new NotImplementedException();
StatusBarCloseTimer = new DispatcherTimer();
StatusBarCloseTimer.Interval = TimeSpan.FromMilliseconds(3000);
StatusBarCloseTimer.Tick += StatusBarCloseTimer_Tick;
}
但是现在StatusBarCloseTimer.Start()代码>给了我相同的错误:
“应用程序调用了为不同线程封送的接口。(HRESULT的异常:0x8001010E(RPC_E_错误_线程))”已解决:等待CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.NNormal,()=>{}也通过Dispatcher调用Start()如何?此错误显然意味着您从错误的线程调用了某些内容。已解决:wait CoreApplication.MainView.corewindown.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,()=>{}