魚刺執行緒池撥號模板
此功能需要載入精易模組5.6和魚刺類_多執行緒應用模組
.版本 2
.支援庫 iext
.支援庫 spec
.程式集 視窗程式集_啟動視窗
.程式集變數 thread, 魚刺類_執行緒池
.程式集變數 adsl, adsl撥號類
.程式集變數 adslname, 文字型, , , 寬頻連線名稱
.程程式設計客棧序集變數 adsluser, 文字型, , , 寬頻賬號
.程式集變數 adslpwd, 文字型, , , 寬頻密碼
.程式集變數 許可
.程式集變數 撥號頻率
.程式集變數 執行緒次數, 整數型
.程式集變數 失敗重登, 邏輯型
.程式集變數 失敗重登次數
.子程式 _程式設計客棧建立執行緒池按鈕_被單擊
thread.建立 (到整數 (執行緒數編輯框.內容))
許可 = _建立進入許可證 ()
.子程式 _生成賬號密碼按鈕_被單擊
.區域性變數 x
.區域性變數 i
超級列表框.全部刪除 ()
.計次迴圈首 (20, x)
超級列表框.插入表項 (, 到文字 (x), , , , )
超級列表框.置標題 (x - 1, 1, 文字_取隨機字母 (8))
超級列表框.置標題 (x - 1, 2, 文字_取隨機數字 (6))
.計次迴圈尾 ()
.子程式 執行緒池控制
.區域性變數 賬號數
.區域性變數 calladsl
.區域性變數 i
賬號數 = 超級列表框.取表項數 ()
.計次迴圈首 (賬號數, i) ' 迴圈整個列表
.如果真程式設計客棧 (calladsl = 撥號頻率) ' 當投遞出去的執行緒等於設定好的 撥號頻率時,等待執行完成
.判斷迴圈首 (執行緒次數 > 0)
程式_延時 (300)
除錯輸出 (「等待執行緒執行完成..」)
.判斷迴圈尾 ()
除錯輸出 (「開始撥號..」)
adsl.重撥_cmd (adslname, adsluser, adslpwd)
程式_延時 (1000)
calladsl = 0
除錯輸出 (「撥號完成,繼續任務.
.如果真結束
calladsl = calladsl + 1
_進入許可區 (許可)
執行緒次數 = 執行緒次數 + 1
_退出許可區 (許可)
除錯輸出 (i - 1)
thread.投遞任務 (&登入執行緒, i - 1)
.計次迴圈尾 ()
.子程式 登入執行緒
.引數 列表索引
.區域性變數 user賬號, 文字型
.區域性變數 pwd密碼, 文字型
.區域性變數 登入結果, 文字型
.區域性變數 i
_進入許可區 (許可)
超級列表框.置標題 (列表索引, 3, 「登入中..」) ' 直接顯示狀態
user賬號 = 超級列表框.取標題 (列表索引, 1)
pwd密碼 = 超級列表框.取標題 (列表索引, 2)
_退出許可區 程式設計客棧(許可)
.如果真 (登入 (user賬號, pwd密碼, 登入結果) = 假)
.如果真 (失敗重登) ' 如果選中失敗重登
.計次迴圈首 (失敗重登次數, i) ' 迴圈重登次數
_進入許可區 (許可)
超級列表框.置標題 (列表索引, 3, 「重登 」 + 到文字 (i)) ' 重登...
_退出許可區 (許可)
.如果真 (登入 (user賬號, pwd密碼, 登入結果)) ' 如果登入成功
_進入許可區 (許可)
超級列表框.置標題 (列表索引, 3, 登入結果)
執行緒次數 = 執行緒次數 - 1
_退出許可區 (許可)
返回 ()
.如果真結束
程式_延時 (到整數 (文字_取隨機範圍數字 (1000, 3000)))
.計次迴圈尾 ()
.如果真結束
.如果真結束
_進入許可區 (許可)
超級列表框.置標題 (列表索引, 3, 登入結果) ' 直接顯示狀態
執行緒次數 = 執行緒次數 - 1
_退出許可區 (許可)
.子程式 登入, 邏輯型
.引數 賬號, 文字型
.引數 密碼, 文字型
.引數 返回登入結果, 文字型, 參考 可空
.區域性變數 i
i = 到整數 (文字_取隨機範圍數字 (1, 9))
' ///// 這裡我寫成隨機的
.如果真 (i = 1) ' 隨機生成1-10之間的數,如果是 1 則返回驗證碼錯誤
返回登入結果 = 「驗證碼錯誤」
返回 (假)
.如果真結束
.如果真 (i = 2) ' 隨機生成1-10之間的數....
返回登入結果 = 「密碼錯誤」
返回 (假)
.如果真結束
.如果真 (i = 3) ' 隨機生成1-10之間的數....
返回登入結果 = 「ip被限制」
返回 (假)
.如果真結束
' 其他的隨機數均為成功
返回登入結果 = 「登入成功」
返回 (真)
.子程式 _開始按鈕_被單擊
失敗重登 = 失敗重登選擇框.選中
失敗重登次數 = 到整數 (重登次數編輯框.內容)
撥號頻率 = 到整數 (頻率編輯框.內容)
執行緒_建立 (&執行緒池控制)
.子程式 __啟動視窗_建立完畢
adsl.取寬頻使用者名密碼 (adslname, adsluser, adslpwd)
執行結果:
總結
易語言多執行緒大漠多執行緒模板UI更新
ui更新就是對視窗的元件超級列表框傳送讀寫,採用了封裝。大漠多執行緒模板原始碼 版本 2 支援庫 iext 子程式 ui 更新,用來更新視窗的超級列表框相關執行緒資訊 引數 主序號,整數型 引數 操作,整數型 區域性變數 列表索引,整數型 增加 如果真 操作 ui 增加 列表索引 視窗列表.插入表項...
易語言多執行緒大漠多執行緒模板指令碼延時
易語言裡有延遲 延時,模組裡也有程式延時,超級延時,之類的命名,但多執行緒裡的指令碼的暫停和恢復,還涉及到內部解綁,這裡採用ui通知的方式,開始真正的暫停,使用死迴圈,不去呼叫系統介面,減少系統資源的占用。511遇見易語言多執行緒大漠多執行緒 大漠多執行緒指令碼延時 版本 2 子程式 指令碼延時,用...
易語言多執行緒大漠多執行緒模板多執行緒初始化
多執行緒初始化,在啟動視窗後,需要首先呼叫,包括對執行緒控制代碼,視窗控制代碼,程序pid,程序狀態,異常狀態,是否暫停,是否結束的初始化,特別說明的是,為任務狀態申請記憶體空間,因為任務狀態的資料型別是文字型,防止避免多執行緒訪問文字型變數引發的資料衝突,預先分配好記憶體位址。511遇見易語言多執...