易語言多執行緒大漠多執行緒模板指令碼延時

2021-10-06 16:26:08 字數 1301 閱讀 1375

易語言裡有延遲、延時,模組裡也有程式延時,超級延時,之類的命名,但多執行緒裡的指令碼的暫停和恢復,還涉及到內部解綁,這裡採用ui通知的方式,開始真正的暫停,使用死迴圈,不去呼叫系統介面,減少系統資源的占用。

511遇見易語言多執行緒大漠多執行緒

大漠多執行緒指令碼延時

.版本 2

.子程式 指令碼延時, , , 用來控制指令碼的暫停恢復

.引數 序號, 整數型

.引數 時間, 整數型

.區域性變數 死迴圈, 邏輯型

死迴圈 = 真

' 判斷是否有結束

.如果真 (執行緒資訊 [序號].是否結束)

' 解綁,退出之前,必須在本執行緒內解綁

執行緒資訊 [序號].dm.unbindwindow ()

退出執行緒 (0)

.如果真結束

' 判斷是否暫停

.如果真 (執行緒資訊 [序號].是否暫停)

執行緒資訊 [序號].執行緒狀態 = #執行緒狀態_暫停

多執行緒_非同步通知ui (#通知型別_更新, 序號)

' 如果暫停時繼續可以前台操作,

執行緒資訊 [序號].dm.enablebind (5)

' 開始真正的暫停,使用死迴圈,不去呼叫系統介面,減少系統資源的占用

.判斷迴圈首 (死迴圈)

' 沒有暫停

.如果真 (執行緒資訊 [序號].是否暫停 = 假)

執行緒資訊 [序號].執行緒狀態 = #執行緒狀態_正在執行

多執行緒_非同步通知ui (#通知型別_更新, 序號)

' 開啟後台

執行緒資訊 [序號].dm.enablebind (1)

跳出迴圈 ()

.如果真結束

' 已經結束

.如果真 (執行緒資訊 [序號].是否結束)

' 退出前,一定要在本執行緒內解綁

執行緒資訊 [序號].dm.unbindwindow ()

退出執行緒 (0)

.如果真結束

延時 (1)

.判斷迴圈尾 ()  

.如果真結束  

' 再次判斷執行緒狀態是否正在執行,

.如果真 (執行緒資訊 [序號].執行緒狀態 ≠ #執行緒狀態_正在執行)

執行緒資訊 [序號].執行緒狀態 = #執行緒狀態_正在執行

多執行緒_非同步通知ui (#通知型別_更新, 序號)

' 開啟後台

執行緒資訊 [序號].dm.enablebind (1)

.如果真結束

延時 (時間)

原始碼:易語言多執行緒大漠多執行緒-38大漠多執行緒模板-8指令碼延時

易語言多執行緒大漠多執行緒指令碼主副執行緒

在大漠多執行緒模板中,指令碼副執行緒的作用主要是乙個監控執行緒,可以監控遊戲視窗是否存在,遊戲是否卡屏,是否掉線,當然你可以用來進行遊戲裡的其他檢測監控。511遇見易語言多執行緒大漠多執行緒 大漠多執行緒主副執行緒 版本 2 子程式 指令碼副執行緒,監控執行緒 引數 序號,整數型 區域性變數 dm,...

易語言多執行緒大漠多執行緒模板UI更新

ui更新就是對視窗的元件超級列表框傳送讀寫,採用了封裝。大漠多執行緒模板原始碼 版本 2 支援庫 iext 子程式 ui 更新,用來更新視窗的超級列表框相關執行緒資訊 引數 主序號,整數型 引數 操作,整數型 區域性變數 列表索引,整數型 增加 如果真 操作 ui 增加 列表索引 視窗列表.插入表項...

易語言多執行緒大漠多執行緒模板多執行緒初始化

多執行緒初始化,在啟動視窗後,需要首先呼叫,包括對執行緒控制代碼,視窗控制代碼,程序pid,程序狀態,異常狀態,是否暫停,是否結束的初始化,特別說明的是,為任務狀態申請記憶體空間,因為任務狀態的資料型別是文字型,防止避免多執行緒訪問文字型變數引發的資料衝突,預先分配好記憶體位址。511遇見易語言多執...