设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 网络编程 >> .net >> 简单介绍.Net3.0 中跨线程访问控件
精品推荐
.net点击TOP10
·『原创』C#中TreeView类操作全攻略:建立树,新增节点,删除节点,修改节点,拖动节点,与Oracle数据库交互操作(一)
·从零开始学ASP.NET(基础篇)
·官方水晶报表 .NET 应用程序实例下载 (C#、Visual C++.NET)
·开发asp.net自定义控件(asp.net学习笔记二)
·系统托盘气泡提示和右键菜单的实现
·P2P之UDP穿透NAT的原理与C#实现
·Web Services的过去、现状和展望(上部)
·CHK文件恢复工具
·水晶报表相关官方软件下载
·C#编写的一个简单的登陆界面对话框的原代码
网络编程点击TOP10
·『原创』C#中TreeView类操作全攻略:建立树,新增节点,删除节点,修改节点,拖动节点,与Oracle数据库交互操作(一)
·c#操作word表格
·ASP.NET 程序中常用的三十三种代码
·根据xsd生成xml文档
·C#编写的windows计算器-源代码
·从零开始学ASP.NET(基础篇)
·JSP文件下载的几种方式
·ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!
·用C#实现木马程序
·C#中连接DataTable的方法
精选专题

简单介绍.Net3.0 中跨线程访问控件

作者: 来源:http://www.xgdown.com/ 时间:2007-10-18 16:58:40

  这两天用WPF做一个项目的UI部分时,发现跨线程地访问了UI控件,自然地报异常了。当时找了半天也没在控件中找到InvokeRequired属性和Invoke方法,郁闷之极.....最后发现在.net3.0中,这有所改变了。

  替代InvokeRequired的方法是DispatcherObject.CheckAccess()或DispatcherObject.VerifyAccess()方法,用于指示当前线程是否可以直接访问控件。

  替代Invoke的方法是DispatcherObject.Dispatcher.BeginInvoke(...)方法。

  参考代码:

  // Uses the DispatcherObject.CheckAccess method to determine if
  // the calling thread has access to the thread the UI object is on
  private void TryToUpdateButtonCheckAccess(object uiObject)
  {
   Button theButton = uiObject as Button;
  
   if (theButton != null)
   {
   // Checking if this thread has access to the object
   if(theButton.CheckAccess())
   {
   // This thread has access so it can update the UI thread
   UpdateButtonUI(theButton);
   }
   else
   {
   // This thread does not have access to the UI thread
   // Pushing update method on the Dispatcher of the UI thread
   theButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
   new UpdateUIDelegate(UpdateButtonUI), theButton);
   }
   }
  }


简单介绍.Net3.0 中跨线程访问控件 相关文章:
简单介绍.Net3.0 中跨线程访问控件 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com