Private Sub Button1_Click()
成都創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè),為客戶提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開發(fā),品牌網(wǎng)站制作,公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。
MsgBox("A")
Threading.Thread.Sleep(3000)
MsgBox("B")
End Sub
如果暫停的3秒有影響,就給他開一個(gè)線程:
Private Sub Button1_Click()
Dim th As New Threading.Thread(AddressOf MsgBoxProc)
th.Start()
End Sub
Private Sub MsgBoxProc()
MsgBox("A")
Threading.Thread.Sleep(3000)
MsgBox("B")
End Sub
Threading.Thread.Sleep(500)這句是線程停止等待的,在這500毫秒的時(shí)間里你的任何動(dòng)作都是不響應(yīng)的,理論上再SendKeys.Send(TextBox2.Text)這段時(shí)間內(nèi)你可以動(dòng)作,但是send是毫秒級(jí)完成的,你還沒有來得及響應(yīng)就進(jìn)入了下一次的循環(huán),所以跟卡死類似
解決方法:通過timer定時(shí)器延時(shí)
Imports System.Threading
Thread.Sleep(1000)’延遲1秒
2.PauseWait(1000)’延遲1秒
Public Sub PauseWait(ByVal HowLong As Long)
Dim tick As Long
tick = My.Computer.Clock.TickCount
Do
My.Application.DoEvents()
Loop Until tick + HowLong My.Computer.Clock.TickCount
End Sub
第一個(gè)for完成對(duì)delay_time參數(shù)的控制,即共循環(huán)多少次內(nèi)部循環(huán)
第二個(gè)for(內(nèi)部循環(huán)),完成對(duì)j從0到199的控制,共循環(huán)200次。
翻譯成匯編就是:
(R0為傳遞參數(shù))
DELAY:
MOV R1,#200
DJNZ R1,$
DJNZ R0,DELAY
RET
接收單片機(jī)的數(shù)據(jù)沒有事件響應(yīng) 我在While循環(huán)中不停的判斷單片機(jī)所收到的數(shù)據(jù)是否等于我所發(fā)的數(shù)據(jù),若不相等,則我再發(fā)一次,然后再收,程序如下: Private Sub Write_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Write.Click '以下CWSerial是串口通信控件,Read和Write方法分別是收數(shù)據(jù)和發(fā)數(shù)據(jù) CWSerial1.Write(TextOut.Text) '發(fā)數(shù)據(jù) While (CWSerial1.Read() TextOut.Text) 'TextOut.Text是我要發(fā)的數(shù)據(jù) MsgBox( "未能正確收到! ") CWSerial1.Write(TextOut.Text) '再發(fā)一次 End While MsgBox( "已正確收到! ") End Sub 關(guān)鍵是在發(fā)和收之間有個(gè)延遲(TimeOut),不可能我剛發(fā)完數(shù)據(jù)后就可以馬上收到數(shù)據(jù),必須等待1s后才有可能收到數(shù)據(jù)(我設(shè)的TimeOut為1000ms),我想要做的就是讓程序等待1s 希望大哥能提供讓程序等待的代碼,例子也行