命令名:等待執行緒
等待,直到指定執行緒結束或等待超時才返回。返回真表示等待成功。注意,在linux下暫不支援超時等待。本命令為初級命令。
引數www.cppcns.com 資料型別
說明執行緒控制代碼
整數型(int)
可通過「啟動執行緒」的第三個引數獲取執行緒控制代碼。
等待時間
整數型(int)
可以被省略。指定等待時間,單位為毫秒。如果為0或負數,或被省略,表示不限定等待時間。
我們可以通過等待執行緒來判斷乙個執行緒是否結束
.版本 2
.支援庫 ethread
.程式集 視窗程式集1
.程式集變數 執行緒控制代碼, 整數型
.子程式 _按鈕1_被單擊
啟動執行緒 (&子程式1, , 執行緒控制代碼)
.如果真 (等待執行緒 (執行緒控制代碼, ))
資訊框 (「執行緒結束」, 0, )
關閉執行緒控制代碼 (執行緒控制代碼)
.如果真結束
www.cppcns.com
.子程式 子程式1
.區域性變數 n, 整數型
.計次迴圈首 (1000, n)
輸出除錯文字 (到文字 (n))
.計次迴圈尾 ()
但是這樣還有乙個問題,本來用多執行緒的本意是為了子程式1的迴圈不影響視窗的訊息響應www.cppcns.com,但是加了乙個等待執行緒又把主線程阻塞了,不符合我們的本意。
解決方法就是把等待執行緒放到另乙個執行緒中去:
.版本 2
.支援庫 ethread
.程式集 視窗程式集1
.程式集變數 執行緒控制代碼, 整數型, , "2"
.子程式 _程式設計客棧按鈕1_被單擊
啟動執行緒 (&子程式1, , 執行緒控制代碼 [1])
啟動執行緒 (&子程式2, , 執行緒控制代碼 [2])
關閉執行緒控制代碼 (執行緒控制代碼 [2])
程式設計客棧
.子程式 子程式2
.如果真 (等待執行緒 (執行緒控制代碼 [1], ))
資訊框 (「執行緒1結束」, 0, )
關閉執行緒控制代碼 (執行緒控制代碼 [1])
.如果真結束
.子程式 子程式1
.區域性變數 n, 整數型
.計次迴圈首 (1000, n)
輸出除錯文字 (到文字 (n))
.計次迴圈尾 ()
如此,在不阻塞主線程的情況下完成了等待執行緒。
本文標題: 詳解易語言等待執行緒
本文位址:
易語言 多執行緒,等待所有執行緒執行完畢後操作
用處 當你請求網路,想吧網路請求的結果放到乙個全域性陣列中,然後最後一塊處理陣列 執行緒呼叫案列 版本 2 支援庫 ethread 支援庫 spec 程式集 視窗程式集1 子程式 按鈕1 被單擊 區域性變數 handle,整數型 啟動執行緒 thread,handle 關閉執行緒控制代碼 handl...
易語言多執行緒出錯
下面的複製貼上到易語言裡 版本 2 dll命令 setprocessaffinitymask,整數型,公開,設定cpu親和性 程序控制代碼 返回cpu號 引數 hprocess,整數型 引數 hprocess,整數型 dll命令 setthreadaffinitymask,整數型,公開,設定cpu親...
詳解易語言常量用法
易語言常量用法,我用例項講解,下面一步步操作,大家學懂了,給我投一票,謝謝!1 易語言新建乙個winwww.cppcns.comdows視窗點選常量表進入 2 ctrl n 就會增加一列 如圖 3 我們設定常量 程式設計客棧分別在相應位置輸入資料 如圖 4 我們雙擊 新建的視窗 進入 編輯區 輸入 ...