`

SWT中的線程控制

    博客分类:
  • SWT
阅读更多

在swt界面程序中,直接開一個線程,在run()方法中訪問swt的UI組件時,會拋出異常Invalid thread access。

 

這個時候需要啟動一個UI線程:

Display.getDefault().asyncExec(new Runnable() { 

    public void run() { 

    }

} );

 

此時變為其他的線程對UI線程的訪問。  當要退出程序時,有時還需要釋放資源和關閉它:

Runtime.getRuntime().addShutdownHook(new Thread() {

    public void run() {
        //關閉線程中的動作。
    }

}); 

 

 

分享到:
评论

相关推荐

    SWT并发例子(后台耗时线程)

    在这个并发例子中,我们关注的是如何在SWT应用中正确处理耗时的后台任务,以避免阻塞用户界面(UI)线程,即事件调度线程。 首先,了解Java中的线程模型至关重要。Java应用程序通常由主线程运行,这个主线程负责...

    swt页面后台多线程接受ModBUS协议Socket通讯的数据

    4. **多线程**:在SWT应用程序中,为了防止主线程(UI线程)被长时间运行的任务阻塞,后台处理通常在独立的线程中进行。这可以通过Java的Thread类或者Runnable接口实现。在本例中,接收和解析ModBUS数据的线程应独立...

    SWT内存泄露解决办法

    5. **控制线程数量**:过多的线程会占用大量内存。确保在线程完成任务后及时结束,或使用线程池来管理线程。 在提供的"内存泄露.txt"文件中,可能包含关于SWT内存泄露更具体的案例和解决方案。而"org.eclipse.swt....

    swt心得体会

    同时,SWT支持线程安全的绘图操作,开发者可以在后台线程中更新界面,提高了应用程序的响应速度。 然而,SWT的缺点也很明显。由于其直接依赖于操作系统,导致跨平台兼容性问题,开发者需要为每个目标平台编写特定的...

    Eclipse SWT 4.4 API 文档

    布局管理器如GridLayout、RowLayout和FillLayout,负责控制组件在窗口中的排列方式。事件处理机制允许开发者响应用户的交互,如点击按钮、选择列表项等。 Eclipse 4.4中的SWT API还包含了对绘图的支持,如Graphics...

    SWT创建Shell窗口

    在实际开发中,我们还可以使用布局管理器(如FillLayout、GridLayout等)来控制控件在Shell中的排列方式,或者使用Event和Listener机制来响应用户的操作。此外,SWT还提供了丰富的组件,如树、表格、菜单等,满足...

    Java swt完整教程

    SWT提供了几种布局管理器,如FillLayout、GridLayout、FormLayout等,用于控制组件在容器中的排列方式和大小调整。 5. SWT与JFace JFace是建立在SWT之上的抽象层,简化了SWT的使用,提供了一些高级组件,如对话框...

    SWT视频播放器

    9. **播放控制**:视频播放器通常有快进、快退、音量控制、全屏切换等功能,这些都是通过多媒体库和SWT控件的组合实现的。 10. **错误处理**:良好的播放器会处理各种可能出现的问题,如文件损坏、编码不支持、资源...

    使用Eclipse进行SWT编程.pdf

    Display用于管理事件循环(event loops)和控制UI线程和其他线程之间的通讯。Shell是一个应用程序中由操作系统窗体管理器来管理的窗体。任何SWT应用程序都需要至少一个Display实例和1个或更多的Shell实例。 3. SWT...

    基于swt的小软件

    例如,使用`Display.asyncExec`或`Display.syncExec`方法在GUI线程中更新界面,确保界面操作的线程安全。 **Bank子文件** 在"Bank"这个子文件中,很可能是实现了一款与银行相关的模拟软件,可能包括账户管理、交易...

    swt 监控代码资料

    9. SWT布局管理:SWT提供了几种布局管理器,如FillLayout、GridLayout、FormLayout等,用于控制组件在容器中的排列方式。正确使用布局管理器可以确保界面在不同分辨率和屏幕尺寸下都能良好显示。 10. SWT国际化与...

    全屏的SWT多媒体播放器

    5. **布局管理**:SWT提供了多种布局管理器,如GridLayout、FormLayout、MigLayout等,用于控制组件在窗口中的排列和大小。在设计播放器界面时,需要合理选择和使用布局管理器。 6. **线程处理**:多媒体播放通常...

    [原创]SWT 深入内幕之消息机制探秘

    3. **Display和Thread**:SWT中的所有UI更新都必须在Display线程中执行,以保持UI的一致性。因此,非Display线程生成的事件通常会被放入一个队列,待Display线程空闲时再进行处理。 4. **EventTable**:SWT的Event...

    Swt的API使用说明

    Swt API提供了几种布局管理器,如`FillLayout`、`GridLayout`、`RowLayout`和` MigLayout`,用于控制控件在窗口中的排列方式。通过这些布局管理器,开发者可以轻松实现复杂界面的设计。 **4. 图像处理** Swt提供了...

    SWT综合教程及安装指导

    1. GUI线程:在SWT中,所有对GUI的操作必须在事件调度线程(Event Dispatch Thread,EDT)中进行,以保证界面的同步更新和避免数据竞争。 2. 回调机制:使用`Display.asyncExec`或`Display.syncExec`方法来确保在...

    基于SWT的枪战游戏(主要是Canvas)

    7. **多线程**:为了防止UI线程阻塞,复杂的计算和长时间的任务应该在单独的线程中执行。SWT提供了Display和Thread类来支持异步操作。 8. **优化**:考虑到性能,开发者可能需要对代码进行优化,例如减少不必要的重...

    java-swt

    Java SWT(Standard Widget Toolkit)是Java编程环境中用于创建桌面应用程序的一个库,它是Java AWT(Abstract Window Toolkit)和Swing之外的一个替代选择。SWT设计的目的是提供更原生、性能更高的用户界面组件,...

    java swt播放器

    在这个特定的项目中,"java swt播放器"是一个已经实现的音乐播放器,包含源码,可以直接在 Eclipse 开发环境中运行。 首先,我们要理解 SWT 的核心概念。SWT 是一个开源的 Java 库,它为开发者提供了与操作系统直接...

Global site tag (gtag.js) - Google Analytics