美文网首页
IntelliJ Platform 插件开发文档翻译 - 一般线

IntelliJ Platform 插件开发文档翻译 - 一般线

作者: 斯科特安 | 来源:发表于2016-08-31 10:45 被阅读129次

    原文: General Threading Rules

    一般地, IntelliJ Platform 的数据结构都可以使用单个reader或writer锁。

    任何线程都可以读取数据。在UI线程做读操作不需要任何代价。然而,在任何其它线程做读操作,都需要通过ApplicationManager.getApplication().runReadAction()方法进行。

    对数据的写操作只能在UI线程进行,且必须通过ApplicationManager.getApplication().runWriteAction()方法.

    从后台线程向事件分发线程传递控制信息,插件应该使用ApplicationManager.getApplication().invokeLater()代替SwingUtilities.invokeLater()。前者允许指定本次调用时的模态框状态,比如指定操作执行时模态框的堆栈应该在一个什么状态。传递ModalityState.NON_MODAL表示操作会在所有模态框关闭后执行。传递ModalityState.stateForComponent()表示操作会在某个指定的组件仍然可见时执行。

    相关文章

      网友评论

          本文标题:IntelliJ Platform 插件开发文档翻译 - 一般线

          本文链接:https://www.haomeiwen.com/subject/khpqettx.html