【问题标题】:Interface Marshalled for a Different Thread in C# on Windows 8在 Windows 8 上的 C# 中为不同线程编组的接口
【发布时间】:2012-06-21 03:41:34
【问题描述】:

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

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

如何克服此错误以更新我的 UI 并通过 NetworkChange_NetworkAddressChanged 事件访问 Web 服务?

【问题讨论】:

    标签: c# windows-8


    【解决方案1】:
        NetworkInformation.NetworkStatusChanged += (sender) =>
        {
            Window.Current.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, Update);
        };
    

    使用 UI 线程调用(编组)更新函数的示例。

    【讨论】:

      【解决方案2】:

      与您在 WINdows 7 中执行此操作的方式相同 - 您使用 UI 线程 Dispatcher 将其编回 UI 线程。

      【讨论】:

        猜你喜欢
        • 2016-02-16
        • 1970-01-01
        • 2013-10-20
        • 2023-03-20
        • 2011-04-05
        • 1970-01-01
        • 2018-05-21
        • 1970-01-01
        相关资源
        最近更新 更多