在Windows 8上为C#中的不同线程编组的接口

时间:2012-06-20 14:56:37

标签: c# windows-8

我正在使用Windows 8应用。在应用程序运行时,我正在尝试确定用户的互联网连接何时恢复。为了做到这一点,我正在听NetworkChange_NetworkAddressChanged事件。当该事件被触发时,我尝试通过名为GetLatestData的方法更新我的UI并将我的查询执行到我的Web服务。当我尝试在NetworkChange_NetworkAddressChanged事件中调用此方法时,我当前收到一条错误消息:

该应用程序调用了一个为不同线程编组的接口。

如何克服此错误以更新我的用户界面并点击NetworkChange_NetworkAddressChanged事件中的网络服务?

2 个答案:

答案 0 :(得分:4)

    NetworkInformation.NetworkStatusChanged += (sender) =>
    {
        Window.Current.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, Update);
    };

上面的示例调用(marshals)使用UI线程更新函数。

答案 1 :(得分:0)

与在WIndows 7中执行此操作的方式相同 - 您使用UI线程Dispatcher将MARSHAL返回到UI线程。