要在后台线程里对前台界面组件进行访问的解决办法:使用Display对象,Display对象主要负责管理事件循环和控制UI线程和其它线程之间的通信。

若要访问UI界面上的对象必须通过UI线程来访问,就是说在非UI线程中调用UI对象是不允许的,这是出于线程安全的考虑。

Display对象中负责调用其他线程的方法有以下3种:
1. asyncExec(Runnable runnable):异步启动新的线程。UI线程不会等待runnable对象执行结束后再继续进行,就是说UI线程可以和runnable对象所在的线程同时运行。
2. syncExec(Runnable runnable):同步启动新的线程。UI线程会等待runnable对象执行结束后才会继续进行。getSyncThread()方法可以获得线程对象。当runnable对象是耗时大的线程时,尽量不要采用此种方式。

3. timerExec(int milliseconds, Runnable runnable):指定一段时间再启动新的线程。用此方法创建的线程,将会在指定的时间后再启动线程。与UI线程是异步的。

Display对象中,与UI线程相关的方法如下:
 1. 获得当前的UI线程对象:getThread()
 2. 使UI线程处于休眠状态:sleep()
 3. 唤醒UI线程:wake()

转载于:https://www.cnblogs.com/erweiyang/archive/2012/09/17/2688552.html

SWT多线程注意事项相关推荐

  1. java多线程 注意事项_多线程使用及注意事项

    1.并行和并发的区别 2.多线程(高并发编程)的优点 3.多线程程序需要注意事项 4.线程的启动与安全中止 5.怎么安全中止线程(interrupt()) 并行和并发的区别: 一个是同时执行,一个是交 ...

  2. java定时任务中使用多线程_定时任务使用多线程注意事项

    在定时任务中为了加快处理速度,一般都会使用多线程处理业务.需要注意一下事项: 1. 定时任务是否允许上一个定时任务未结束,下一个定时任务可以启动,通过Scheduled中的配置在决定. 2. 主线程已 ...

  3. VMware 虚拟化编程(8) — 多线程中的 VixDiskLib

    目录 目录 前文列表 多线程注意事项 多线程中的 VixDiskLib 前文列表 VMware 虚拟化编程(1) - VMDK/VDDK/VixDiskLib/VADP 概念简析 VMware 虚拟化 ...

  4. OpenStack Victoria搭建(一)简介

    简介 OpenStack 项目是一个适用于所有类型云的开源云计算平台,旨在实现简单.可大规模扩展和功能丰富.来自世界各地的开发人员和云计算技术人员创建了 OpenStack 项目. OpenStack ...

  5. Python伪随机数模块random

    random模块 该模块实现了各种分布的伪随机数生成器.(包括在实数轴上计算均匀.正态(高斯).对数正态.负指数.伽马和贝塔分布的函数)不应将此模块的伪随机生成器用于安全目的.有关安全性或加密用途,请 ...

  6. iOS性能优化系列篇之“列表流畅度优化”工具篇

    这一篇文章是iOS性能优化系列文章的的第二篇,主要内容是关于列表流畅度的优化.在具体内容的阐述过程中会结合性能优化的总体原则进行分析,所以建议大家在阅读这篇文章前先阅读一下上一篇文章:iOS性能优化系 ...

  7. Python多任务教程

    一.并发和并行 多任务:一定时间段内,充分利用cpu资源,同时去执行多个任务 并发: 快速交替的 去执行多任务 并行: 真正同时的 去执行多任务 ,就是同时进行 二.多进程 1.多进程入门 知识点: ...

  8. UNIX(多线程):23---线程池注意事项和常见问题

    使用线程池的注意事项 死锁 任何多线程程序都有死锁的风险,最简单的情形是两个线程AB,A持有锁1,请求锁2,B持有锁2,请求锁1.(这种情况在mysql的排他锁也会出现,不会数据库会直接报错提示).线 ...

  9. libcurl 多线程使用注意事项 - Balder~专栏 - 博客频道 - CSDN.NET

    libcurl 多线程使用注意事项 - Balder~专栏 - 博客频道 - CSDN.NET libcurl 多线程使用注意事项 分类: C/C++学习 2012-05-24 18:48 2843人 ...

最新文章

  1. Orchard详解--第一篇 介绍
  2. 链表 - Part I
  3. mysql 备份如何使用_如何使用命令来备份和还原MySQL数据库
  4. css网页练习-3视觉
  5. Spring MVC学习总结(7)——Spring MVC整合Ehcache缓存框架
  6. Go语言程序的数组初始化
  7. JavaWeb学习--Servlet认识
  8. SurfaceView实例
  9. oracle和plsqldev的安装,win7x64下成功安装ORACLE客户端和PLSQLDEV!
  10. mysql学习之mysql集群
  11. 常见的网上商城系统开发语言有哪些?
  12. 微波雷达人体感应技术,智能镜子感应雷达模块应用,让生活更有趣
  13. sl4a+android截屏,使用SL4A Python在android桌面上显示数据(示例)
  14. 如何进行远程协作办公?
  15. VB.NET创建/修复/压缩/备份/恢复ACCESS数据库
  16. 通达OAV12报表中心
  17. 《声声慢·寻寻觅觅》 李清照
  18. mac系统可以进行软件测试吗,iPhone和Mac如何加入Apple Beta版软件测试计划
  19. Flutter中的多选按钮组件Checkbox
  20. MFC CStdioFile简单用法

热门文章

  1. (DFS)n皇后问题
  2. linux 分隔大文件,linux系统下分割大文件的方法
  3. 二级c语言程序设计翻译,C语言程序设计报错英文翻译
  4. springboot security 权限不足_SpringBoot 整合 SpringSecurity 之起源篇(零)
  5. 使用try-catch-finally处理异常---java
  6. mysql 备份 windows_windows mysql 自动备份的几种方法
  7. Mysql 零距离-入门(三)数据类型
  8. IDEA 配置Tomcat
  9. c语言平面向量加法考点,平面向量的加减法怎么死活都不会?有没有什么口诀?例如:向量AB+BC=?向量OA-OB=?向量AB-CB=?有没有什么口诀!...
  10. 安装百分之80卡住_关注丨男子翻越高铁站台丢命,家属向铁路部门索赔80万!法院这样判...