知识大全 在非用户线程中访问用户线程的GUI资源

Posted

篇首语:自己打败自己是最可悲的失败,自己战胜自己是最可贵的胜利。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在非用户线程中访问用户线程的GUI资源相关的知识,希望对你有一定的参考价值。

在非用户线程中访问用户线程的GUI资源  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    ——此文章摘自《自己动手写开发工具 基于Eclipse的工具开发》定价 ¥  特价 ¥ 详细>>

    在非用户线程中对用户线程的GUI资源进行访问的时候 如果不进行同步的话就会造成不可预料的问题 AWT/Swing中并没有强制在非用户线程中访问用户线程的GUI资源的时候要进行同步 而SWT则进行了同步控制 这样就可以预防这些不可预料的问题 在SWT中 通常存在一个被称为 用户线程 的唯一线程 只有在这个线程中才能调用对组件或某些图形 API的访问操作 如果在非用户线程中程序直接调用这些访问操作 那么SWTExcepiton异常会被抛出     下面看一个例子     Runnable r = new Runnable()         public void run()                     for (int i = ; i < ; i++)                             try                                     wait( );                 catch (InterruptedException e)                                                 text setText(new Integer(i) toString());                         ;

    我们启动一个线程 在这个线程中 每隔一秒为界面文本控件赋值一次 运行后就会抛出SWT异常

    解决这个问题的方法也是非常简单的 那就是通过Display类的syncExec(Runnable)和asyncExec(Runnable)这两个方法去实现     Runnable r = new Runnable()         public void run()                     for (int i = ; i < ; i++)                             try                                     wait( );                catch (InterruptedException e)                 final int j = i;                 display asyncExec(new Runnable()                     public void run()                                             text setText(new Integer(j) toString());                                     );                         ;

cha138/Article/program/Java/gj/201311/27779

相关参考

知识大全 同一进程中的线程究竟共享哪些资源

  线程共享的环境包括进程代码段进程的公有数据(利用这些共享的数据线程很容易的实现相互之间的通讯)进程打开的文件描述符信号的处理器进程的当前目录和进程用户ID与进程组ID  &nb

知识大全 Java的用户线程和守护线程

Java的用户线程和守护线程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 验证后台线程的java多线程技术

  这个程序验证了后台线程与用户线程的区别以及之间的关系证明了只要所有的用户线程结束了那么后台线程就将必须结束!  importncurrentTimeUnit;  publicclass 

知识大全 资源访问的错误方法

  现在考虑换成另一种方式来使用本章频繁见到的计数器在下面的例子中每个线程都包含了两个计数器它们在run()里增值以及显示除此以外我们使用了Watcher类的另一个线程它的作用是监视计数器检查它们是否

知识大全 c#中使用多线程访问winform中控件

  我们在做winform应用的时候大部分情况下都会碰到使用多线程控制界面上控件信息的问题然而我们并不能用传统方法来做这个问题下面我将详细的介绍  首先来看传统方法  publicpartialcla

知识大全 Java GUI用户界面编程的基础

JavaGUI用户界面编程的基础  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java的GUI

知识大全 在C#中跨线程访问Winform控件

在C#中跨线程访问Winform控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在程序需要读

知识大全 Java中对线程间的变量访问也需要同步控制

Java中对线程间的变量访问也需要同步控制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一个简

知识大全 java阻塞队列 线程同步合作

  Queue接口与ListSet同一级别都是继承了Collection接口LinkedList实现了Queue接口Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果

知识大全 多线程的优点和代价

  尽管面临很多挑战多线程有一些优点使得它一直被使用这些优点是  ●资源利用率更好  ●程序设计在某些情况下更简单  ●程序响应更快  资源利用率更好  想象一下一个应用程序需要从本地文件系统中读取和