易語言 多執行緒,等待所有執行緒執行完畢後操作

2021-10-24 16:32:07 字數 1144 閱讀 1530

用處:

當你請求網路,想吧網路請求的結果放到乙個全域性陣列中,然後最後一塊處理陣列

執行緒呼叫案列:

.版本 2

.支援庫 ethread

.支援庫 spec

.程式集 視窗程式集1

.子程式 _按鈕1_被單擊

.區域性變數 handle, 整數型

啟動執行緒 (&thread, , handle)

關閉執行緒控制代碼 (handle)

.子程式 thread

.區域性變數 i, 整數型

.區域性變數 handle, 整數型, , "0"

重定義陣列 (handle, 假, 10)

.計次迴圈首 (10, i)

啟動執行緒 (&login, i, handle [i])

.計次迴圈尾 ()

.計次迴圈首 (10, i)

等待執行緒 (handle [i], -1)

.計次迴圈尾 ()

資訊框 (「所有執行緒執行完畢。」, 0, )

.子程式 login

.引數 引數, 整數型

.區域性變數 i, 整數型

除錯輸出 (「執行緒編號」 + 到文字 (引數) + 「進入」)

.計次迴圈首 (10, i)

延遲 (200)

.計次迴圈尾 ()

除錯輸出 (「執行緒編號」 + 到文字 (引數) + 「退出」)

思路

用到了兩次執行緒

核心** login。子執行緒 用到了引數 i  這個是必須傳遞了

這裡是延遲了  延遲 (200) 10次 也就是2s

實際上可以模擬網路請求。然後把請求結果放到乙個陣列中

第一次 取名子程式 thread

、是呼叫login 處理完畢 等待 login 得執行緒處理結束

在這個執行緒裡面

務必呼叫方法就是等待處理完畢後的操作

資訊框 (「所有執行緒執行完畢。」, 0, )
實際**可以是對陣列的操作 

第二次就是把第一次的操作封裝到裡面 

啟動執行緒的時候 忽略引數2  帶著引數3 傳遞乙個0 即可

最後關閉

我本來以為第二次執行緒這步並不重要。。直到嘗試的時候。才發現這步必不可少。。。

執行緒同步 等待所有執行緒執行完畢

在多執行緒程式中經常會碰到執行緒同步 場景1主線程啟動多個子執行緒後,主線程需要等待所有的子執行緒執行完畢後,主線程才能進一步向下執行。c 提供了 manualresetevent 類為我們的執行緒同步提供了方便.manualresetevent.waitall new waithandle wai...

多執行緒 等待所有任務執行完成

在多執行緒中,有時候需要等待所有執行緒執行完成後才讓繼續往下執行,如查詢結果彙總等。下面列舉兩種等待方式 方式一 利用 countdownlatch 類完成。示例 按任務總量建立計數器 final countdownlatch countdownlatch new countdownlatch so...

詳解易語言等待執行緒

命令名 等待執行緒 等待,直到指定執行緒結束或等待超時才返回。返回真表示等待成功。注意,在linux下暫不支援超時等待。本命令為初級命令。引數www.cppcns.com 資料型別 說明執行緒控制代碼 整數型 int 可通過 啟動執行緒 的第三個引數獲取執行緒控制代碼。等待時間 整數型 int 可以...