zoukankan      html  css  js  c++  java
  • Windows Phone编程中Dispatcher.BeginInvoke的使用

    在学习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 }

     

  • 相关阅读:
    关于直播的技术整理2
    关于直播的技术整理
    android drawable size
    Could not find gradle wrapper within android sdk
    基于开源Red5搭建的视频直播平台
    Cannot find module 'rxjs/operators/share'
    Cannot find type definition file for '.svn'
    Ionic国际化解决方案
    本博客停止更新改用wordperss
    Powershell批量安装SNMP服务
  • 原文地址:https://www.cnblogs.com/twobin/p/3338028.html
Copyright © 2011-2022 走看看