Tài nguyên đang được tải lên... tải...

eventLoop

CáceventLoop()chức năng được sử dụng để nghe các sự kiện được nhận bởi các chủ đề.

CáceventLoop()hàm trả về thông tin sự kiện nhận được bởi các chủ đề hiện tại. XemCấu trúc thông tin sự kiện.

đối tượng, giá trị không

eventLoop (() eventLoop (thời gian hết)

Các thông sốtimeoutlà thiết lập timeout trong milliseconds. Nếu tham sốtimeoutđược thiết lập là 0, nó sẽ chờ cho một sự kiện xảy ra trước khi trả về. Nếu lớn hơn 0, nó sẽ thiết lập thời gian chờ sự kiện. Nếu nhỏ hơn 0, nó sẽ trả về sự kiện mới nhất ngay lập tức.

thời gian nghỉ sai số

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()
}

Chạy ba chủ đề đồng thời và xuất thông tin sự kiện nhận được. Nếu thời gian hết hoặc hàm trả về ngay lập tức, giá trị đầu ra là không.

Cơ chế xử lýeventLoop()chức năng là giống như chức năng toàn cầuEventLoop().

{@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/Threads/setData setData}, {@fun/Threads/Thread/id id}, {@fun/Threads/Thread/name name name}

tên ThreadLock