PeraturaneventLoop()
fungsi digunakan untuk mendengar untuk peristiwa yang diterima oleh benang.
PeraturaneventLoop()
fungsi mengembalikan maklumat peristiwa yang diterima oleh thread semasa. LihatStruktur Maklumat Acara.
objek, nilai sifar
eventLoop (dalam bahasa Inggeris) eventLoop (timeout)
Parametertimeout
adalah tetapan masa lapang dalam milidetik. Jika parametertimeout
Jika ia lebih besar daripada 0, ia akan menetapkan masa tunggu acara. Jika ia kurang daripada 0, ia akan mengembalikan acara terbaru dengan serta-merta.
masa lapang palsu nombor
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()
}
Melakukan tiga benang serentak dan mengeluarkan maklumat peristiwa yang diterima. Jika masa tamat berlaku atau fungsi kembali dengan segera, nilai output adalah sifar.
Mekanisme pemprosesaneventLoop()
fungsi adalah 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