【发布时间】:2015-04-30 19:00:44
【问题描述】:
在 Sublime Text 3 API 中,all operations are threadsafe:
线程
所有 API 函数都是线程安全的 ...
但在 Sublime Text 2 API 中,情况并非如此。正如我 personally learned to my displeasure 所言,某些操作在从主线程以外的线程调用时会以不可预测且依赖于操作系统的方式失败并带有消息
RuntimeError: 必须在主线程上调用,考虑使用 sublime.set_timeout(function, timeout)
我可以在 Sublime Text 2 文档(强调我的)中找到一个关于线程安全的保证:
set_timeout(回调,延迟)
在给定延迟(以毫秒为单位)后调用给定回调。具有相同延迟的回调将按照添加的顺序运行。 从多个线程调用 setTimeout 是安全的。
但是将所有内容都包含在 set_timeout 调用中是乏味且难以理解的。如果我的目标是支持 Sublime Text 2,或者是大量使用 set_timeout 的唯一方法,我可以从主线程之外安全地使用任何其他 API 方法吗?
【问题讨论】:
标签: multithreading sublimetext2 sublimetext python-multithreading sublime-text-plugin