gpt4 book ai didi

asynchronous - Windows Phone 7 是否允许异步编程?

转载 作者:行者123 更新时间:2023-12-02 10:50:37 30 4
gpt4 key购买 nike

我正在为 wp7 构建一个新闻阅读器应用程序。我希望发生一些后台事件,例如将下载的内容写入隔离存储。有没有办法在不阻塞 UI 线程的情况下做到这一点?

WebClientDownloadStringCompleted 事件是异步的,对吧?我可以在那里做吗?

最佳答案

它是异步的,但建议不要使用 WebClient 进行任何重要的处理,因为正如 Indy 正确指出的那样,该工作将在 UI 线程上完成。

Webclient 这样做是为了为您提供不必调用调度程序的便利。

Dispatcher.BeginInvoke( () => { /* ui update code */ } );

这是以在 UI 线程上执行回调中的所有处理为代价的。

HttpWebRequest(由 WebClient 本身使用)将允许您将大部分处理保留在 UI 线程之外,而只需通过 Dispatcher 在 UI 线程上进行 UI 更新(请参阅上文)。

请注意,如果您执行此操作的强度太大,您仍然可以阻止 UI 线程。在这种情况下,使用 Thread.Sleep(xxx) 间隔 UI 更新将有助于保持 UI 响应。

要更深入地了解 HttpWebRequest 和 WebClient 之间的差异以及要演示的工作项目示例,请参阅我的帖子。

WebClient, HttpWebRequest and the UI Thread on Windows Phone 7

关于asynchronous - Windows Phone 7 是否允许异步编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4066216/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com