回答
文档地址 https://docs.hamibot.com/
你可以使用 threads.disposable() 来获取一个线程的返回值。它允许一个线程等待另一个线程的一次性结果。
以下是一个示例,展示如何在主线程中等待子线程计算完成并获取其结果:
// 创建一个 disposable 对象,用于传递结果
var result = threads.disposable();
// 启动子线程执行耗时计算
threads.start(function () {
var sum = 0;
for (var i = 1; i <= 10000; i++) {
sum += i;
}
// 计算完成后通知并传回结果
result.set(sum);
});
// 主线程可以继续做其他事情...
log('正在等待计算结果...');
// 阻塞当前线程,直到结果可用
var finalSum = result.blockedGet();
toastLog('最终结果: ' + finalSum);
说明:
threads.disposable()返回一个Disposable对象。- 在子线程中调用
result.set(value)设置结果。 - 在需要获取结果的线程中调用
result.blockedGet()来阻塞等待结果。 blockedGet()只能获取一次结果,适合一次性任务。
这种方式适用于需要从子线程向其他线程传递单次结果的场景。
ℹ️ 本回答由 AI 生成,内容仅供参考