在学习Windows Phone 程序开发时经常会使用到Dispatcher.BeginInvoke()的编程方法,可能许多初学者并不熟悉Dispatcher.BeginInvoke的使用方法以及为什么在WP编程中会经常使用到这个方法,下面就粗浅介绍下Dispatcher.BeginInvoke()的使用方法。

在WP编程中,我们经常要做的一件事就是更新UI,而其UI部分都在单一的线程下执行的。就是说,WP的开发编程中绝大部分的UI设置更新都是在UI线程中进行的,如果你在非UI线程中要更新UI的状态,那么将会抛出一个异常UnauthorizedAccessException(无效的跨线程操作)。那么我们应该如果去更新UI状态呢。

是的,Dispatcher.BeginInvoke()派上用场了。在WP编程中,任何的UI线程上的处理都是通过Dispatcher来传送与处理的,如果想要更新UI状态,那么就可以使用Dispatcher的BeginInvoke()方法来传送,其使用方法也非常简单,只需将其中更新UI状态的代码放入Dispatcher.BeginInvoke()方法中即可,这其实是一个在处理多线程时的一个小技巧。

例如:

 1 private void TestBeginInvoke(Panel p)
 2 
 3 {
 4 
 5     p.Dispatcher.BeginInvoke(() => {
 6 
 7         p.Children.Clear();
 8 
 9         p.Children.Add(
10 
11             new TextBlock { Text = "Added by Dispatcher." });
12 
13     });
14 
15 }

 Windows Phone编程中Dispatcher.BeginInvoke的使用

相关文章:

  • 2021-06-19
  • 2022-03-02
  • 2022-02-14
  • 2021-06-06
  • 2021-06-30
  • 2021-09-01
  • 2022-12-23
猜你喜欢
  • 2021-12-02
  • 2021-08-25
  • 2022-03-05
  • 2021-12-22
  • 2022-12-23
  • 2022-12-23
  • 2021-09-08
相关资源
相似解决方案