資源の読み込みに... 荷物...

イベントループ

についてeventLoop()この機能はスレッドが受信したイベントを聞くために使用されます.

についてeventLoop()この関数は,現在のスレッドが受信したイベント情報を返します.イベント情報構造.

オブジェクト,ゼロ値

イベントループ イベントループ (タイムアウト)

パラメータtimeoutパラメータが設定されている場合timeout値が0に設定されている場合,帰還する前にイベントが起こるのを待つ.値が0を超えると,イベントの待機タイムアウトを設定します.値が0未満の場合,最新のイベントを直ちに返します.

タイムアウト 偽り 番号

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

3つのスレッドを同時に実行し,受信されたイベント情報を出力します.タイムアウトが発生するか,関数がすぐに返される場合は,出力値は null です.

処理メカニズムはeventLoop()この関数は,この関数と同じです.EventLoop().

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

名前 スレッドロック