Thread.eventLoop
监听当前线程接收到的事件。
eventLoop()
eventLoop(timeout)示例
并发执行 3 个线程,输出接收到的事件信息;当超时或立即返回时,输出为空值。
javascript
function main() {
var t1 = threading.Thread(function() {
while (true) {
var eventMsg = threading.currentThread().eventLoop() // 阻塞等待
// 2024-11-14 10:14:18 thread1 eventMsg: {"Seq":1,"Event":"thread","ThreadId":0,"Index":1,"Queue":0,"Nano":1731550458699947000}
Log(_D(), "thread1 eventMsg:", eventMsg)
}
})
var t2 = threading.Thread(function() {
while (true) {
var eventMsg = threading.currentThread().eventLoop(-1) // 立即返回
Log(_D(), "thread2 eventMsg:", eventMsg)
Sleep(5000)
}
})
var t3 = threading.Thread(function() {
while (true) {
var eventMsg = threading.currentThread().eventLoop(3000) // 设置3秒超时
Log(_D(), "thread3 eventMsg:", eventMsg)
}
})
t1.postMessage("Hello " + t1.name())
t2.postMessage("Hello " + t2.name())
t3.postMessage("Hello " + t3.name())
t1.join()
t2.join()
t3.join()
}返回值
| 类型 | 描述 |
object / 空值 | 当前线程接收到的事件信息,详见 |
参数
| 名称 | 类型 | 必填 | 描述 |
timeout | number | 否 | 超时时间,单位为毫秒。若 |
参考
备注
eventLoop() 函数的处理机制与全局函数 EventLoop() 一致。