日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

按鍵精靈中并沒有計(jì)時(shí)器,自己制作可調(diào)用的多線程計(jì)時(shí)器!

 本明書館 2018-09-12
按鍵精靈中并沒有計(jì)時(shí)器,如果我們需要執(zhí)行某個(gè)操作10秒鐘,這樣將會(huì)很麻煩,因?yàn)?span href="tools/ajax.aspx?t=topicswithsametag&tagid=16" class="t_tag" style="margin: 0px; padding: 0px; word-wrap: break-word; line-height: 24.5px; border-bottom: 1px solid rgb(255, 0, 0); cursor: pointer; white-space: nowrap;">程序要么停下來只是數(shù)過了幾秒,要么就嗖嗖嗖的跑程序不知道跑多久,我們需要它一邊計(jì)時(shí)的同時(shí)跑程序,所以需要計(jì)時(shí)器控制程序,做到某段程序僅執(zhí)行一定的時(shí)間。好了,進(jìn)入正題!

Global k //全局變量k,用于在計(jì)時(shí)結(jié)束時(shí)給個(gè)信號(hào)已結(jié)束下面的循環(huán)
k=0
BeginThread time // 啟動(dòng)線程time
Delay 100 
i=0
While k = 0
    Delay 1000
    TracePrint "過了 " & i & " 秒!"
    TracePrint "K值為 " & k & " !"//僅僅表示程序在跑While時(shí)候同時(shí)在跑sub time計(jì)時(shí)
    i=i+1
Wend

Sub time() //作為線程函數(shù)
    k = Lib.MyTool.Timer(5000, 10) //函數(shù)為我在命令庫里自己建的文件(MyTool)下的函數(shù),設(shè)置為執(zhí)行5秒,結(jié)束后Tiemr返回 10 故過5秒后k=10
End Sub

/************下面函數(shù)為我在命令庫里自己建的文件(MyTool)下的函數(shù)***************/
Function Timer(time,n)//time為需要計(jì)時(shí)時(shí)間,n為計(jì)時(shí)結(jié)束后返回的值,需要n的原因在于作為標(biāo)號(hào),結(jié)束時(shí)根據(jù)標(biāo)號(hào)判斷結(jié)束的是哪一段程序,方便調(diào)試及編程
T1 = Plugin.Sys.GetTime//獲取執(zhí)行前系統(tǒng)時(shí)間
t=0
While time >= t
T2 = Plugin.Sys.GetTime//執(zhí)行時(shí)刻時(shí)間監(jiān)測
t = T2 - T1
Wend
Timer = n
End Function


好了,有同學(xué)可能覺得程序中為了計(jì)時(shí)器加這個(gè)代碼亂,其實(shí)我也這么覺得,所以我后面把他們都封裝起來直接調(diào)用~
下面看!
  1. i = 0 //僅為了顯示個(gè)東西,沒具體含義
  2. k = 0 // 循環(huán)運(yùn)行信號(hào)
  3. Call Lib.MyTool.Timer(5000) // 函數(shù)為我在命令庫里自己建的文件(MyTool)下的函數(shù),下面有說,調(diào)用了計(jì)時(shí)器,開始后臺(tái)計(jì)時(shí)
  4. While k = 0
  5.     Delay 1000
  6.     i=i+1
  7.     k = Lib.MyTool.TimerF(k,10) // 函數(shù)為我在命令庫里自己建的文件(MyTool)下的函數(shù),下面有說,調(diào)用計(jì)時(shí)器的監(jiān)視函數(shù),實(shí)時(shí)檢查時(shí)間到了沒
  8.     TracePrint i
  9. Wend
復(fù)制代碼
改進(jìn)后的計(jì)時(shí)器這樣就用上了,是不是覺得很清爽~
主要代碼就兩句,就可以實(shí)現(xiàn)多線程計(jì)時(shí)器,一個(gè)是啟用計(jì)時(shí),一個(gè)是獲取結(jié)束計(jì)時(shí)時(shí)候的返回值。
Call Lib.MyTool.Timer(計(jì)時(shí)時(shí)間)
Lib.MyTool.TimerF(循環(huán)體循環(huán)數(shù),自定義返回?cái)?shù))
  1. Global Time_k //計(jì)時(shí)器本身運(yùn)行信號(hào)
  2. Global Time_t //計(jì)時(shí)器計(jì)時(shí)的實(shí)時(shí)時(shí)間
  3. Time_k=0 // 為0 時(shí)是時(shí)間未到,繼續(xù)計(jì)時(shí),為 1 是到時(shí),停止計(jì)時(shí)通知監(jiān)視函數(shù)返回?cái)?shù)據(jù)

  4. Sub Timer請使用subTimer //至于這個(gè)詭異的函數(shù)名,我是怕自己什么時(shí)候不小心調(diào)用錯(cuò)了、、、
  5. T1 = Plugin.Sys.GetTime//獲取執(zhí)行前系統(tǒng)時(shí)間
  6. t=0
  7. While Time_t >= t
  8. T2 = Plugin.Sys.GetTime//執(zhí)行時(shí)刻時(shí)間監(jiān)測
  9. t = T2 - T1
  10. Wend
  11. Time_k = 1
  12. End Sub

  13. Sub Timer(time)
  14. Time_t = time
  15.     BeginThread Timer請使用subTimer
  16.     Delay 100
  17. End Sub

  18. Function TimerF(i,j) // i計(jì)時(shí)器一般用于循環(huán) i 為調(diào)用函數(shù)循環(huán)體的循環(huán)數(shù), j 為自定義返回值,靈活使用
  19.     If Time_k = 0 Then 
  20.         TimerF = i
  21.     Else 
  22.         TimerF = j
  23.     End If
  24. End Function
復(fù)制代碼
好了~結(jié)束。

存在問題,不知道按鍵創(chuàng)建進(jìn)程是否會(huì)自動(dòng)銷毀進(jìn)程,不然運(yùn)行時(shí)間長的話會(huì)出問題。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多
    喜歡該文的人也喜歡 更多
    熱門閱讀 換一換