當前位置:首頁 » 編程軟體 » 腳本單線程

腳本單線程

發布時間: 2022-11-03 06:52:45

① 剛接觸按鍵精靈想寫個多線程腳本就是不知道怎麼樣用多線程格式

按照需求C和D應該是不用開線程的,A、B同時運行,B找完東西運行C,C運行完運行D,也就是說B、C、D單線程就行了,A自己一個線程
如果你有單獨的問題可以追問,如果是想要完整的教程還是建議去相關論壇去多找找

② bat腳本 啟動和關閉java線程

我以前的做法是在線程中開一個socket, ip是127.0.0.1 埠自定,每次while循環都查詢此socket。
在執行 shutdown.bat時, 向此socket發送一個標志, 主線程收到此標志後,則完全退出,
關閉線程。

③ 腳本單線程運行沒問題,多線程運行出現錯誤率,是腳本的問題還是系統的問題

很多朋友在WIN2000或XP下安裝軟體時,有時會提示「安裝程序啟動安裝引擎失敗:不支持此介面」,導致無法安裝(安裝引擎,,比如microsoft的Windows Install Service.之類的,,也可能是其它安裝器的引擎)。 方法一:請檢查是否具有管理員的許可權? 方法二:可能是系統文件損壞或被修改,請嘗試用SFC命令修復一下。 用參數 scannow 立即掃描所有受保護的系統文件。 一次掃描所有受保護的系統文件。 方法三:是否安裝了其它有沖突的軟體,如安裝了(網路)IE搜索伴侶和ACDSEE5.0(特別是迷你中文版),有時就會導致這種現象,請卸掉5.0,找個其它版本(如4.0)的裝一下。 網上有一個版本的ACD See 5.0中文版對Windows 有一個嚴重的摧毀作用,這個版本有一個特殊的標記:就是它的圖標(ico)上面有一個小小的五星紅旗。 安裝了這個版本後,Windows的組件服務將被破壞,IIS的asp程無法運行,另外,許多程序裝時會出錯,提示「安裝程序啟動安裝引擎失敗,不支持此介面!」,可以卸載這個版本的和搜索工具和ACD See,刪除[HKEY_LOCAL_MACHINE\software\]下面的網路工具和ACD See項 方法四:有的軟體安裝需要windows installer支持,一般解決方法為:在控制面板->管理工具->服務中,找到 windows installer服務,把啟動類型改為手動,然後啟動即可。記住在安裝好程序後將此服務停止。如果仍然存在問題,請到微軟站點下載最新的windows installer 2.0版。 方法五:安裝文件是單線程的,查看正在運行的進程,如果裡面有ikernel.exe,則表示現在無法安裝,結束此進程,然後再安裝就OK了。 方法六:因為NORDON殺毒軟體會把INSTALL SHIELD 那個ikernel.exe文件誤認為病毒。退出防火牆,重新啟動,就好了。 方法七:進入系統所在分區program files -> common fiels -> installshield -> engine -> 6 - > intel32,把這個文件夾中的文件全部刪除(或直接把engine整個文件夾都刪了),重新啟動,然後再安裝。 方法八:安裝NORTON SYTEMWORKS 2003,用它的WINDOCTOR自動修復,然後用了NORTON SYTEMWORKS的ONE BUTTON CHECKUP,重啟。 方法九:現在的好多的軟體的安裝程序都不是exe的而是msi,而msi是一種新的安裝程序的腳本文件。就算有的安裝程序是exe的但在它的安裝目錄里也有個msi文件,實際上是exe調用msi文件來安裝程序的。msi是腳本文件,實際上真正運行腳本文件的是「msiexec.exe」它就是一切問題的原因。需要安裝instmsiw.exe這個文件,instmsiw.exe是一個壓縮包裡麵包括了所有關於運行msi所需要的文件。運行後問題就可解決了。 方法十:當然是重裝系統啦,前九種方法均無效時也只有這樣做了。

④ cocos2dx socket lua 是單線程的嗎

上層調用socket 是非阻塞的 你執行的時候 很快就會執行到下一行 但是消息不一定就立馬發出去了 一般網路和io這類比較費時的操作 開放給腳本使用 大多都是非阻塞的 因為lua本身對線程的操作很弱 如果在這里處理這些長時間的操作 就會導致頁面被卡住 體驗很差

⑤ 按鍵精靈(如何把截到的圖放進附件里)為什麼路徑是Attachment:\未命名.bmp

「按鍵精靈安卓版」關於「多線程」的理解

我平時寫腳本基本上是不用多線程的,一是我寫長期運行的腳本不多,沒有多線程的需求,二是多線程容易造成腳本卡頓。

當然我不用不代表別人也不用,最近就看到群里有一些朋友在問關於多線程的問題,確實對於新手朋友來說容易出問題。

下面就說一下我對於多線程的一些理解:

(一)什麼是主線程、什麼是子線程

先說一個誤區:相信很多新手朋友會覺得主線程是這樣的:

Function 主程序()

//這裡面是我的腳本主要的功能操作

End Function

這明顯是錯誤的,在多線程腳本中,區分主線程的方法是看它是不是不在function或者sub內部,只要沒在函數內部的就是主線程。至於說取個主程序或者主線程這類名字,和它是不是主線程沒有一點關系。

上面說的是主線程,再來說說子線程是什麼?

只要用Thread.Start啟動的都是子線程。比如:

Thread.Start 主程序

Function 主程序()

//這裡面是我的腳本主要的功能操作

End Function

當然沒有啟動的函數就不算了。

(二)子線程可以有多少個?

從語法角度來說沒有限制,你寫多少個都可以,但是實際應用中基本上也就一到兩個,不會再多了,否則腳本會卡頓,甚至直接崩潰。

(三)我只有一個函數,可不可以啟動多個子線程?

可以,一個函數啟動兩次,就會有兩個子線程。比如:

Thread.Start 主程序

Thread.Start 主程序

Function 主程序()

//這裡面是我的腳本主要的功能操作

End Function

這段代碼運行以後,腳本是有兩個主程序代碼同時運行。

通常我們不會這樣用,為了防止一個函數被反復使用,會把啟動線程賦值給一個變數。

dim h=Thread.Start(主程序)

賦值給一個變數的好處是啥呢?

如果想要停止某個線程的時候,直接用停止線程命令停止對應的變數。

Thread.Stop (h)

(四)子線程能不能關閉或者啟動別的子線程?

不能,控制子線程的開啟和關閉只能是主線程。如果想要一個子線程式控制制另外一個子線程,就需要藉助共享變數把「控制信號」先發給主線程,然後在讓主線程式控制制另外一個子線程關閉或者開啟。

(五)多線程的腳本可以使用全局變數嗎?

不可以,有些朋友寫了一個單線程的腳本,測試也沒問題,後來覺得腳本運行久了可能會出現卡頓的現象,於是想要加個檢測卡頓的子線程。可是原本正常運行的腳本沒有做任何變化,變成多線程以後就不能用了。

這是因為原本腳本中可能用到全局變數了,變成多線程以後,全局變數失效導致腳本錯誤。

什麼是按鍵的全局變數?

Dim m=1

Call 函數()

Function 函數()

TracePrint m

End Function

上面這段代碼中變數m是在函數外面定義的,這個就是按鍵的全局變數。同理還有一個局部變數,就是在函數裡面定義的變數。

為了減少上面說到的問題,我們盡量定義局部變數。也就是一個函數中用到所有變數盡量在它內容部定義。

(六)子線程中可以調用函數嗎?

可以,但是要注意寫法,下面說幾個多線程中可能會寫錯的地方。

①啟動子線程的時候代碼中,子線程名稱後面不能有括弧

Thread.Start(主程序) //正確寫法

Thread.Start(主程序()) //錯誤寫法

②啟動帶參數的子線程

Thread.Start(主程序(參數1,參數2)) //錯誤寫法

Thread.Start(主程序,參數1,參數2) //正確寫法

③子程序中調用函數

Call 函數 //錯誤寫法

Call 函數() //正確寫法

(七)哪些地方可能會用到多線程

我們以雙線程為例,一般來說主線程會做非操作性的功能,子線程做具體操作功能。

非操作性的功能,比如:

①檢測卡頓

②實時屏幕顯示內容

③心跳檢測

這些操作有一個共同的特點,不影響界面上原有的其他操作。

⑥ 按鍵精靈運行多線程腳本卡

看樣子是邏輯混亂或者沒有循環代碼,回頭給你看看,我先洗澡。

我剛剛簡單測試了下,貌似沒問題啊,並不會卡死

另外你說的功能其實不用多線程的,或者說一個子程序或主程序就能達成

單線程版:

BeginThreada
Do
Delay1000
Loop
Suba
For300
KeyPress"E",1
Next
KeyDown"W",1
Delay1000
KeyUp"W",1
Delay500
KeyDown"S",1
Delay1000
KeyUp"S",1
EndSub

主程序版:

For300
KeyPress"E",1
Next
KeyDown"W",1
Delay1000
KeyUp"W",1
Delay500
KeyDown"S",1
Delay1000
KeyUp"S",1

php是單線程非阻塞嗎

PHP支持多線程,也可以阻塞,根據需要選擇編寫不同的代碼。

⑧ Unity3d中的腳本是多線程還是單線程

看具體代碼,你寫單線程就是單線程,寫多線程就是多線程,C#語言寫的,只是unity的多數api只能在主線程調用

⑨ JS腳本通過什麼方法可以實現多線程

雖然javascript是單線程的,但是瀏覽器是多線程的,典型的瀏覽器有如下線程:
javascript引擎線程
界面渲染線程
瀏覽器事件觸發線程
Http請求線程
javascript單線程指的是javascript引擎線程單線程處理它的事件隊列,而瀏覽器是事件驅動的,很多事件都是非同步的,比如滑鼠點擊事件,setTimeout,Ajax回調事件,當這些事件發生時,瀏覽器會將這些事件放入執行隊列,待瀏覽器空閑時再執行。
另外,值得一提的是,ajax調用確實是非同步的,瀏覽器會啟動一個新線程來想服務端發送請求,如果設置了回調事件,會根據服務端返回狀態將回調事件放入事件隊列。

⑩ 給按鍵小精靈設置試用時間的腳本的 超過這個時間就停止

您好,哪位網友技術明顯不夠,可以使用延時命令,採用多線程,代碼如下:
BeginThread 試用
Sub 試用
Delay 60000 * 30 //這里的30是指30分鍾的意思,根據需要自己修改
ExitScript
End Sub
這個比較適合新手,把這個代碼「BeginThread 試用」放到腳本需要開始計時試用時間的位置即可!如果幫到你請及時採納,很高興為您解答!

熱點內容
手機優酷緩存視頻格式 發布:2025-05-15 04:13:45 瀏覽:209
公益電影分鏡頭腳本插畫 發布:2025-05-15 04:08:37 瀏覽:960
數據壓縮編碼 發布:2025-05-15 03:58:44 瀏覽:725
java字元為空 發布:2025-05-15 03:57:11 瀏覽:546
速訊安卓哪裡下載 發布:2025-05-15 03:55:02 瀏覽:48
緩存區數據讀寫原理 發布:2025-05-15 03:39:57 瀏覽:585
編譯器生成的是二進制文件嗎 發布:2025-05-15 03:38:42 瀏覽:955
運營為什麼區分ios和安卓 發布:2025-05-15 03:30:02 瀏覽:630
主播網站源碼 發布:2025-05-15 02:50:56 瀏覽:168
中文編程語言有哪些 發布:2025-05-15 02:48:59 瀏覽:536