Sublime Text 2 API中的哪些操作是线程安全的?

Mar*_*ery 3 multithreading python-multithreading sublimetext sublimetext2 sublime-text-plugin

在Sublime Text 3 API中,所有操作都是线程安全的:

穿线

所有API函数都是线程安全的......

但在Sublime Text 2 API中,情况并非如此.由于我亲自学会了我的不满,一些操作将以不可预测且依赖于操作系统的方式在从主线程以外的线程调用消息时失败

RuntimeError:必须在主线程上调用,考虑使用sublime.set_timeout(函数,超时)

我可以在Sublime Text 2文档(强调我的)中找到关于线程安全的一个保证:

set_timeout(回调,延迟)

在给定的延迟(以毫秒为单位)后调用给定的回调.具有相等延迟的回调将按照添加的顺序运行.从多个线程调用setTimeout是安全的.

但是将所有内容包装在set_timeout电话中是单调乏味且难以理解的.如果我的目标是支持Sublime Text 2,还是大量使用set_timeout唯一的方法,是否有任何其他API方法我可以安全地从主线程中使用?

dan*_*ano 5

根据Sublime Text 3移植指南,Sublime Text 2中唯一的线程安全方法是set_timeout:

在Sublime Text 2中,只有该set_timeout方法是线程安全的.在Sublime Text 3中,每个API方法都是线程安全的.