不需要控件就可以,用多線程的方式實現(xiàn),在窗體上放一個Label和一個button按鈕,代碼如下:
成都創(chuàng)新互聯(lián)公司是專業(yè)的班瑪網站建設公司,班瑪接單;提供網站設計、網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行班瑪網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
Imports?System.Threading
Public?Class?Form1
Dim?Start?As?Double
Dim?td?As?Thread
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
Label1.Text?=?"00:00:00?000"
Button1.Text?=?"開始"
End?Sub
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
If?Button1.Text?=?"開始"?Then
Button1.Text?=?"結束"
Start?=?DateAndTime.Timer
td?=?New?Thread(AddressOf?fun1)
td.Start()
Else
Button1.Text?=?"開始"
td.Abort()
End?If
End?Sub
'定義一個線程
Private?Sub?fun1()
Dim?elapsed?As?TimeSpan
Dim?Dg_txt?As?New?Dg(AddressOf?txt)
Do
elapsed?=?TimeSpan.FromMilliseconds((DateAndTime.Timer?-?Start)?*?1000)
Me.Invoke(Dg_txt,?elapsed.ToString,?Label1)
Thread.Sleep(100)
Loop
End?Sub
'定義一個委托
Delegate?Sub?Dg(ByVal?s?As?String,?ByVal?obj?As?Label)
Sub?txt(ByVal?s?As?String,?ByVal?obj?As?Label)
obj.Text?=?s
End?Sub
End?Class
elapsed.Milliseconds 獲取毫秒。
每100毫秒,do中的代碼執(zhí)行一次,執(zhí)行時間將大于100毫秒,這是產生誤差的地方之一。invoke執(zhí)行一個方法txt,必須等txt里面的代碼運行完畢,方法才能返回,期間占用的時間全是“誤差”。
無限循環(huán),且沒有退出機制,停不下來。
Dim?b?As?Boolean?=?My.Computer.Network.Ping("192.168.1.1",?1000)?'返回ping結果,true表示通,false表示不通,1000表示1000毫秒內返回結果?
If?b?=?True?Then?'指定時間內ping通
Shell("cmd?/c?ping?192.168.1.1??C:\time.txt")?'在C盤time.txt文件中保存ping的結果
Else?'超時
MsgBox("999")?'彈出999提示
End?If
dim a1 as timespan = dtEndTime -dtStartTime
dim a2 as integer = a1.TotalMilliseconds