命令名:等待線程
等待,直到指定線程結束或等待超時才返回。返回真表示等待成功。注意,在Linux下暫不支持超時等待。本命令為初級命令。
參數 | 數據類型 | 說明 |
線程句柄 | 整數型(int) | 可通過“啟動線程”的第三個參數獲取線程句柄。 |
等待時間 | 整數型(int) | 可以被省略。指定等待時間,單位為毫秒。如果為0或負數,或被省略,表示不限定等待時間。 |
我們可以通過等待線程來判斷一個線程是否結束
.版本 2.支持庫 EThread.程序集 窗口程序集1.程序集變量 線程句柄, 整數型.子程序 _按鈕1_被單擊啟動線程 (&子程序1, , 線程句柄).如果真 (等待線程 (線程句柄, )) 信息框 (“線程結束”, 0, ) 關閉線程句柄 (線程句柄).如果真結束.子程序 子程序1.局部變量 n, 整數型.計次循環首 (1000, n) 輸出調試文本 (到文本 (n)).計次循環尾 ()
但是這樣還有一個問題,本來用多線程的本意是為了子程序1的循環不影響窗口的消息響應,但是加了一個等待線程又把主線程阻塞了,不符合我們的本意。
解決方法就是把等待線程放到另一個線程中去:
.版本 2.支持庫 EThread.程序集 窗口程序集1.程序集變量 線程句柄, 整數型, , "2".子程序 _按鈕1_被單擊啟動線程 (&子程序1, , 線程句柄 [1])啟動線程 (&子程序2, , 線程句柄 [2])關閉線程句柄 (線程句柄 [2]).子程序 子程序2.如果真 (等待線程 (線程句柄 [1], )) 信息框 (“線程1結束”, 0, ) 關閉線程句柄 (線程句柄 [1]).如果真結束.子程序 子程序1.局部變量 n, 整數型.計次循環首 (1000, n) 輸出調試文本 (到文本 (n)).計次循環尾 ()
如此,在不阻塞主線程的情況下完成了等待線程。
新聞熱點
疑難解答