【问题标题】:C# Metro App UI updateC# Metro App UI 更新
【发布时间】:2012-06-14 22:49:43
【问题描述】:

我的问题和这个link一样。

我正在为 C# 中的 Metro 应用程序开发新的 WinRT(win8 发布预览版)。 问题是:我的应用程序我的程序运行一个后台线程,它从服务器接收消息(实际上,我移植了一个 XMPP 客户端应用程序)。一些信息应该在 UI 中更新。

我已经尝试过该链接。第二种方法似乎对我有用,但我发现 VS2012RC 智能感知中没有 Dispatcher.Invoke(...) ,这意味着没有这种扩展方法。

仔细搜索后,我想也许这个link可以帮助我。但我不知道如何在这种情况下开始我的应用程序(因为我是 C# 的初学者)。

你能给我一些建议吗?如果您显示一些对我有很大帮助的代码 sn-p,我将不胜感激。 非常感谢。

【问题讨论】:

    标签: c# multithreading user-interface microsoft-metro


    【解决方案1】:

    在你的 UI 线程中运行:

    CoreDispatcher dispatcher = Windows.UI.CoreWindow.GetForCurrentThread().Dispatcher;
    

    然后从您的后台线程调用您刚刚创建的dispatcher 变量中的RunAsync 函数。

    dispatcher.RunAsync(DispatcherPriority.Normal, <delegate to run on UI thread>);
    

    【讨论】:

    • 谢谢。我稍后会尝试。看到这个link
    • 我认为应该使用 CoreDispatcherPriority 而不是 DispatcherPriority。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多