输入/搜索内容
内置函数
Global
Log
Market
Trade
Account
Futures
Exchange
IO
Network
Storage
Threads
exchange.Go
EventLoop
ctx.subscribe
ctx.poll
ctx.order
ctx.cancel
ctx.submit
Subscription
threading
Thread
Thread.peekMessage
Thread.postMessage
Thread.join
Thread.terminate
Thread.getData
Thread.setData
Thread.id
Thread.name
Thread.eventLoop
ThreadLock
ThreadEvent
ThreadCondition
ThreadDict
Server
TA
Talib
OS
结构体
内置变量与常量
通用约定
交易所

监听当前线程(调用者所在线程)接收到的事件。

eventLoop()
eventLoop(timeout)

示例

并发执行 3 个线程,输出接收到的事件信息;当超时或立即返回时,输出的是空值。

javascript
function main() { var t1 = threading.Thread(function() { while (true) { var eventMsg = threading.currentThread().eventLoop() // 阻塞等待 Log(_D(), "thread1 eventMsg:", eventMsg) // 输出:2024-11-14 10:14:18 thread1 eventMsg: {"Seq":1,"Event":"thread","ThreadId":0,"Index":1,"Queue":0,"Nano":1731550458699947000} } }) 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

否

超时时间,单位为毫秒。若 timeout 设置为 0,则一直阻塞等待,直到有事件发生才返回;若大于 0,则设置事件等待的超时时间;若小于 0,则立即返回最近的事件。

参考

备注

eventLoop() 函数的处理机制与全局函数 EventLoop() 一致。监听的始终是调用者所在线程的事件,与通过哪个 Thread 对象调用无关,例如在主线程中调用 t1.eventLoop() 收到的是主线程的事件。