PeraturaneventLoop()
fungsi digunakan untuk mendengarkan untuk acara yang diterima oleh thread.
PeraturaneventLoop()
fungsi mengembalikan informasi peristiwa yang diterima oleh thread saat ini. LihatStruktur Informasi Acara.
objek, nilai nol
eventLoop (() eventLoop (timeout)
Parametertimeout
adalah pengaturan timeout dalam milidetik Jika parametertimeout
jika set menjadi 0, akan menunggu suatu peristiwa terjadi sebelum kembali. jika lebih besar dari 0, akan mengatur event waiting timeout. jika kurang dari 0, akan mengembalikan event terbaru segera.
timeout palsu Nomor
function main() {
var t1 = threading.Thread(function() {
while (true) {
var eventMsg = threading.currentThread().eventLoop() // Blocking wait
// 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) // Return immediately
Log(_D(), "thread2 eventMsg:", eventMsg)
Sleep(5000)
}
})
var t3 = threading.Thread(function() {
while (true) {
var eventMsg = threading.currentThread().eventLoop(3000) // Set a 3 second timeout
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()
}
Mengeksekusi tiga thread secara bersamaan dan keluarkan informasi peristiwa yang diterima.
Mekanisme pemrosesaneventLoop()
fungsi sama dengan fungsi globalEventLoop()
.
{@fun/Threads/Thread/peekMessage peekMessage}, {@fun/Threads/Thread/postMessage postMessage}, {@fun/Threads/Thread/join join}, {@fun/Threads/Thread/terminate terminate}, {@fun/Threads/Thread/getData getData}, {@fun/Threads/Thread/setData setData}, {@fun/Threads/Thread/id id}, {@fun/Threads/Thread/name name}
nama ThreadLock