您好,登錄后才能下訂單哦!
用易語言寫多線程應用要么使用多線程相關的api,支持庫或模塊,其實那些支持庫或模塊也都是封裝的api,但是要比api使用方便。
總體來說易語言官方的多線程支持庫要比一些雜七雜八的模塊好多了。
支持庫勾選上之后就可以使用易語言的多線程支持庫了。
首先看用易語言多線程支持庫創建線程的命令:啟動線程:
命令名:啟動線程
創建并啟動一條線程,可重復使用以創建多條線程,成功返回真,失敗返回假。
參數 | 數據類型 | 說明 |
參數<1>的名稱為“欲執行的子程序” | 子程序指針(SubPtr) | 本參數提供創建線程時欲啟動的子程序,根據是否需要傳遞參數數據,該子程序必須沒有或具有一個整數型參數,否則將出錯。 |
參數數據 | 整數型(int) | 可以被省略。本參數提供線程被啟動時傳遞到欲啟動子程序的整數數據。如果本參數未被省略,此時被啟動子程序必須接收一個整數型參數,否則將出錯。 |
線程句柄 | 整數型(int) | ,可以被省略,提供參數數據時只能提供變量。如果提供了本參數,將向參數變量寫入線程句柄(Windows下為HANDLE,Linux下為pthread_t),請在適當的時機關閉該句柄。如果不提供本參數接收線程句柄,內部將自動處理線程句柄。 |
用易語言多線程支持庫啟動一條線程(控制臺程序下):
.版本 2 .支持庫 EThread .程序集 程序集1 .程序集變量 線程句柄, 整數型 .子程序 _啟動子程序, 整數型, , 本子程序在程序啟動后最先執行 啟動線程 (&子程序1, , 線程句柄) 返回 (0) ' 可以根據您的需要返回任意數值 .子程序 子程序1 標準輸出 (#標準輸出設備, “線程已啟動,線程句柄為:” + 到文本 (線程句柄))
這時候子程序1 將不是在主線程中執行的,而是在線程句柄為552的新線程中執行,和主線程互不相關。
通過下面的代碼可以方便我們理解多線程:
.版本 2 .程序集 窗口程序集1 .子程序 _按鈕1_被單擊 子程序1 () .子程序 子程序1 .局部變量 n, 整數型 .計次循環首 (1000, n) 輸出調試文本 (到文本 (n)) .計次循環尾 ()
按鈕按下之后,循環不結束,界面是不能響應任何消息的額,也就是拖動點擊什么的都沒用,相當于卡死。
但是如果把按鈕下調用的子程序1 ,改為
啟動線程 (&子程序1, , )
則窗口可以正常響應消息,因為創建了一條新的線程來執行子程序1,主線程可以繼續處理窗口消息。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。