.net3.0中跨线程访问控件

这两天用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);
    }
  }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索线程
, 控件
, access
, thread
, 方法
, 跨线程 调试
, UI3.0
The
c 跨线程访问控件、c 线程访问控件、wpf 跨线程访问控件、跨线程访问控件、c 多线程访问控件,以便于您获取更多的相关知识。

时间: 2024-07-28 21:39:03

.net3.0中跨线程访问控件的相关文章

C#中跨线程操作控件

一.前面的话 对于一些耗时型操作(如文件下载),让主线程去处理不是明智的选择,虽然这样做会使得程序开发起来很简单.因为WinForm程序设计的 准则之一就是Responsive,即让用户觉得程序一直在工作,而不是感觉它在罢工(呵呵,事实上,程序不会罢工,只是你没给他表现得机会, 如果它有情感,会觉得委屈死)..Net FrameWork支持在程序用应用线程编程,这可以很好的解决上述问题,不过有时候直接使用Thread和 Threadstart显得有些繁琐也没必要,为此.Net Framework

体验ASP.NET 2.0 中的数据访问控件

asp.net|访问|控件|数据 简介 数据访问一直是开发 Web 应用程序的一个关键问题.几乎每个商业应用程序都需要数据驱动的 Web 页面.由于数据访问如此普遍,开发人员不断地为简单的数据库任务重新生成复杂的代码就显得毫无意义了.开发人员需要从格式各异的不同数据源中快速访问数据.幸运的是,ASP.NET 2.0 中新增的数据访问控件和 ADO.NET 2.0 解决了这一问题. 对于传统的 ASP 和 ASP.NET 1.1 应用程序而言,开发人员不得不创建代码访问和更新数据库,将检索到的数据

关于线程改变控件的问题?

问题描述 privatevoidTest(){while(true){if(s){Thread.Sleep(2000);axMSComm1.Output="AT+CMGF=1r";s=false;if(tt!=null&&(tt.ThreadState==ThreadState.Running)){tt.Abort();}tt=newThread(newThreadStart(Test2));tt.Start();td.Abort();break;}}}privatev

对ASP.NET 2.0下面的新控件的困惑

asp.net|控件 大家知道在ASP.NET2.0下面微软件给出了一系统的新控件,有一些是挺有用的,比如那个Membership成员管理系统,以及分步向导控件都为我们节省了很多的时间,而另外一些,比如从Datagrid上升级来的Gridview有时候感觉倒不是那么好. 这个控件在为我们提供很大的方便的同时也失去灵活性,比如直接指定一个SQL语句就可以完成数据访问的工作,而分页显示,排序更是比吃饭还简单.众所周知,这是与我们分层的逻辑架构设计相违背的,这样就造成了一个难堪的局面,新手很难单单只凭

详细阐述利用ASP.NET 2.0创建自定义Web控件开发说明

asp.net|web|创建|控件|控件开发 简介 从使用基本的文本编辑器到创作标记页面,Web 开发已经经历了一个漫长的过程.目前,集成开发环境 (IDE) 为开发过程中的几乎每个方面都提供了图形化表示形式.此外,还实现各种说明性编程技术以提高效率并降低出现错误的几率.Visual Studio 2005 和 ASP.NET 2.0 中的控件体系结构遵循了这些编程趋势,并且提供了可靠的.可扩展的环境,该环境设计为使开发人员可以创建能够以说明方式配置的控件. 此外,ASP.NET 中新的自适应呈

利用 ASP.NET 2.0 创建自定义 Web 控件

asp.net|web|创建|控件 Jayesh Patel.Bryan Acker.Robert McGovernInfusion Development适用于:Microsoft ASP.NET 2.0Microsoft Visual Studio 2005 摘要:ASP.NET 2.0 中新的自适应呈现模型为控件编写人员提供了很多新的选项.本文展示了这些选项如何使创建 ASP.NET 的自定义控件变得比以前更加容易. 本页内容 简介 自适应呈现模型 创建自定义服务器控件 TagKey 使用

ASP.NET 2.0中的登陆控件简介(1)

asp.net|控件 asp.net 2.0中,新增了许多新的功能和控件.其中,新增的登陆控件可谓使得WEB应用的设计更加得心应手.什么是登陆控件呢?就是我们平常在WEB应用中经常要用到的用户注册,登陆,忘记密码,登陆后根据权限的不同而显示不同的页面等功能,现在在asp.net 2.0中都已经可以由提供的控件来实现了.ASP.NET 2.0中的登陆控件比较多,封装了大部分WEB应用中要实现系统登陆的系列功能,涉及到很多方面,本文将简单介绍一下它们的主要功能.       首先,asp.net 2

ASP.NET 2.0中的登陆控件简介

asp.net|控件 asp.net 2.0中,新增了许多新的功能和控件.其中,新增的登陆控件可谓使得WEB应用的设计更加得心应手.什么是登陆控件呢?就是我们平常在WEB应用中经常要用到的用户注册,登陆,忘记密码,登陆后根据权限的不同而显示不同的页面等功能,现在在asp.net 2.0中都已经可以由提供的控件来实现了.ASP.NET 2.0中的登陆控件比较多,封装了大部分WEB应用中要实现系统登陆的系列功能,涉及到很多方面,本文将简单介绍一下它们的主要功能. 首先,asp.net 2.0中,为了

利用ASP.NET 2.0创建自定义Web控件

asp.net|web|创建|控件 从使用基本的文本编辑器到创作标记页面,Web 开发已经经历了一个漫长的过程.目前,集成开发环境 (IDE) 为开发过程中的几乎每个方面都提供了图形化表示形式.此外,还实现各种说明性编程技术以提高效率并降低出现错误的几率.Visual Studio 2005 和 ASP.NET 2.0 中的控件体系结构遵循了这些编程趋势,并且提供了可靠的.可扩展的环境,该环境设计为使开发人员可以创建能够以说明方式配置的控件. 此外,ASP.NET 中新的自适应呈现模型减少了编写