Atitit.swt 线程调用ui控件的方法

1 SwingUtilities.invokeLater 1

2 display.asyncExec方法 1

3  display.timerExec(500,timer); 2

4 、但有时候并不一定要程序执行时就要定时检测,有时需要外部事情激发这就出现了第2种解决方案,写一个内置类,可以放在事件监听的方法中,然后激发: 2

5 参考 3

1   SwingUtilities.invokeLater

SwingUtilities.invokeLater(new Runnable(){                        @Override                        public void run() {                            label2.setText(x + "");                        }                    });

这个问题我也碰到过,有个updateUI()方法,可以解决。

2 display.asyncExec方法

用SWT提供的display.asyncExec方法,发现其实质根本不是另开一个线程,只是把run方法调用了一次,所以导致调用Thread.sleep时程序就会死掉。

有时候是另外一个线程

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

3  display.timerExec(500,timer);

1.  final Runnable timer = new Runnable () {

2.         int count = 0;

3.         public void run () {

4.           synchronized (this) {

5.             try {

6.               text.setText(

7.                 Integer.toString(count++));

8.             } catch (Exception e) {

9.               e.printStackTrace();

10.             }

11.           }

12.         }

13.       };

14.     while (shell != null && !shell.isDisposed()) {

15.

16.       if (!display.readAndDispatch())

17.         display.sleep();

18.       else

19.         display.timerExec(500,timer);

4 、但有时候并不一定要程序执行时就要定时检测,有时需要外部事情激发这就出现了第2种解决方案,写一个内置类,可以放在事件监听的方法中,然后激发:

1.  new Thread() {

2.       private Runnable cmd = new Runnable() {

3.         public void run() {

4.           shell.setText(String.valueOf(counter++));

5.         }

6.       };

7.       public void run() {

8.         while (true) {

9.           try {

10.             Thread.sleep(2000);

11.           } catch (InterruptedException e) {

12.             return;

13.           }

14.           display.asyncExec(cmd);

15.         }

16.       }

17.     }

18.     .start();

5 参考

SWT中定时器的一种特殊实现方式_SWT中线程互访时display.asyncExec_display.syncExec...程序死掉无响应的解决办法 - fm2005的专栏 - 博客频道 - CSDN.NET.html



Atitit.swt 线程调用ui控件的方法相关推荐

  1. C#跨线程调用窗体控件的问题

    前段时间遇到跨线程调用窗体控件的问题,其实一句话System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;就可以解决,但 ...

  2. C# Winform 跨线程更新UI控件常用方法汇总(多线程访问UI控件)

    概述 C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现"线程间操作无效: 从不是创建控件的线程访问它"的异常.处理跨线程更新Winform UI控件常用 ...

  3. C#线程操作UI控件

    在写winform程序时候,如果时间长的操作不用线程操作.那么会卡死UI,点击界面就体现为未响应.为此需要对耗时操作用线程处理,比如检验的监听程序就是一个死循环,不停检查文件夹或数据库又没有数据,然后 ...

  4. java 线程访问控件_C#多线程与跨线程访问界面控件的方法

    本文实例讲述了C#多线程与跨线程访问界面控件的方法.分享给大家供大家参考.具体分析如下: 在编写WinForm访问WebService时,常会遇到因为网络延迟造成界面卡死的现象.启用新线程去访问Web ...

  5. html 调用c#dll中的控件,C#调用ActiveX控件的方法

    C#调用ActiveX控件时通常要进行两步操作: 第一步:注册控件,例如ABE.DLL,将ABE.DLL拷贝至系统文件夹SYSTEM32下,然后在开始中执行CMD命令,regsvr32 ABE.DLL ...

  6. C# WinForm跨线程访问UI控件

    C# 跨线程访问控件 在做WinForm时,在UI线程之外调用控件会报异常:System.InvalidOperationException:"线程间操作无效: 从不是创建控件"l ...

  7. QT开发之调用其它类中的UI控件的方法

    比如类A和类B, 在B中有一个QTreeWidget控件,需要在A中调用操作 先在A中声明一个 QTreeWidget *tree; 然后在B中声明一个类A的指针 A *a; a->tree = ...

  8. C#【委托/事件篇】跨线程访问窗体控件的方法

    文章目录 一.直接调用方法,方法中使用委托[textBox1.InvokeRequired] 二.调用委托,委托进一步关联方法 1.使用委托[最基础的调用方法:委托五步法] 2.使用Action作为委 ...

  9. 快速创建UI控件的 方法 ,值得总结1

    在平常写代码的时候相信大家 都会为每次创建 button或者其他的系统控件的 那么多行代码而烦恼 ,那么怎么能有个简单的方法来快速创建一个button呢.废话不多说,直接进入主题! 1.第一种方法   ...

  10. c#如何跨线程调用窗体控件

    public partial class Form1 : Form     {         public Form1()         {             InitializeCompo ...

最新文章

  1. php设置低于设定值不能用,php memory limit怎么设置不限制
  2. 鼠标终将消失,未来我们有哪些人机交互方式?
  3. C#学习日志 day 5 plus------ interface 数组及stringBuilder相关
  4. 云上建站快速入门:博客、论坛、CMS、电子商务网站统统搞定
  5. Android 屏幕旋转时Activity的变化
  6. 【MRCTF—Web】做题+复现记录
  7. 【机器学习】岭回归(L2正则在干嘛!)
  8. TypeScript class 的静态成员变量
  9. BootStrap 用法
  10. idea使用过程中的坑
  11. linux 执行程序时,提示not found问题分析
  12. 2020年阿里云服务器租用价格表(实时更新)
  13. @RequestParam使用
  14. html 网页不可以复制粘贴,网页上的文字不能复制,三种方法教你复制全网文字...
  15. 邓俊辉 数据结构 图
  16. [Android 9][markw] 红米4高配版 刷入Lineage OS 16与OpenGApps
  17. 书摘—拆掉思维里的墙
  18. 0402/0603/0805/1206封装尺寸
  19. Wannafly挑战赛20 A 染色(暴力/思维)
  20. 工作站和台式机的区别是什么

热门文章

  1. JMeter数据库请求配置及示例
  2. Spring AOP 本质(1)
  3. 视频播放器+控制器--封装
  4. VBS中Sub与Function的区别[资料]
  5. 字符与ascii的互转
  6. HBase Java API类介绍
  7. 3DSmax里的nurms toggle命令中文版是什么意思
  8. springboot - 应用实践(2)第一个springboot应用
  9. 【php】 php 的注释和结束符号之间的关系
  10. SignalR入门之Hub