gpt4 book ai didi

c# - Windows Phone 应用程序中 Dispatcher.BeginInvoke 方法的用途是什么

转载 作者:太空宇宙 更新时间:2023-11-03 21:30:25 26 4
gpt4 key购买 nike

我遇到了一段代码,其中包含 Dispatcher.BeginInvoke 方法,我用谷歌搜索它以了解更多相关信息,但没有找到任何好的教程。任何人都可以解释什么是 Dispatcher.BeginInvoke 以及在什么情况下我应该使用它......

我在某处看过它是用来更新UI元素的,我正在正常更新UI元素,从来没有发现任何困难。

请解释为什么应该在 wp8 silverlight 应用程序中使用它。

最佳答案

Dispatcher.BeginInvoke 方法(操作) 是一种在 Dispatcher 关联的线程上异步执行指定委托(delegate)的方法。它采用我们希望通过线程异步执行的 System.Action 参数。它返回值类型为 System.Windows.Threading.DispatcherOperation 调用 BeginInvoke 后立即返回的对象,表示已发布到 Dispatcher 队列的操作。

例如

Control.Dispatcher.BeginInvoke(() => {
//Work to do with Thread
//..............
});

您需要在 Windows Phone 应用程序中执行的最常见任务之一是从单独的线程更新 UI。例如,您可能正在使用 WebClient 类异步下载一些内容,并且在操作完成后,您希望使用下载的内容更新 UI。不允许直接从异步线程更新 UI,因为 UI 控件不是线程安全的。

从异步线程更新 UI 的最简单方法是使用 Dispatcher 类。要确定是否可以直接更新 UI,可以使用 CheckAccess() 方法。如果此方法返回 true,则表示您可以直接更新 UI。否则,您必须使用 Dispatcher 类的 BeginInvoke() 方法以线程安全的方式更新 UI。

有关更多引用,您可以阅读这篇文章 Windows Phone Tip: Updating the UI from an Asynchronous Thread

关于c# - Windows Phone 应用程序中 Dispatcher.BeginInvoke 方法的用途是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24572443/

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