【问题标题】:windows phone 8: updating the ui in an async task with the frame passedwindows phone 8:在异步任务中更新 ui 并传递帧
【发布时间】:2015-08-18 09:31:15
【问题描述】:

我想更新帧异步的 UI。 我的工作流程是: Frame =>(Shared) 从服务器异步获取数据 => JsonParser => 在 Frame 中填充文本框 原始帧通过类传递。

建议?

【问题讨论】:

  • 您听说过 MVVM 和数据绑定吗?我建议你调查一下。另外async void 是一个很大的禁忌......而且你的方法不会做任何异步操作。
  • 我正在学习在 Windows 中编程大约 1 天。所以我对此很陌生。我会看看这些东西。我很难进行异步解析(因为我在 andoird 中进行了异步)让 Dataretreiver 和解析器返回数据以便我可以更新 mainFrame 本身中的 ui 是否明智?

标签: c# user-interface windows-phone-8 asynchronous frame


【解决方案1】:

所有 UI 代码都需要在 UI 线程中完成,这意味着它不能异步运行。如果要异步解析响应,请使用以下代码:

public static async Task ParseResponse(String response, Frame frame)
    {
        await Task.Run(() =>
        {
            SingleTank parsedTanks = JsonConvert.DeserializeObject<SingleTank>(response);
        });

        // UI code by calling the dispatcher
    }

但是如果从非UI线程调用这个方法,那么在调用UI代码时需要使用Dispatcher返回到UI线程。我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多