這段代碼我執(zhí)行無誤,不太清楚題主是如何異步發(fā)送的,題主也沒給出錯(cuò)誤究竟是什么,所以無從判斷。
創(chuàng)新互聯(lián)建站專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、巴林右旗網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為巴林右旗等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
只能說需要手動(dòng)釋放,或者用?message?=?Nothing?也可以釋放。
【針對(duì)問題補(bǔ)充的回答】
注釋行已去掉,仍能正常運(yùn)行,可能跟網(wǎng)絡(luò)環(huán)境有關(guān)。
另外不知題主 AddHandler client.SendCompleted, AddressOf SendCompletedCallback 這行中的回調(diào)函數(shù) SendCompletedCallback 是怎么寫的,我寫的是:
Private?Function?SendCompletedCallback(ByVal?sender?As?Object,?ByVal?e?As?System.ComponentModel.AsyncCompletedEventArgs)
If?e.Cancelled?Then
REM?郵件發(fā)送被取消
ElseIf?e.Error.ToString??""?Then
REM?郵件發(fā)送失敗
Else
REM?發(fā)送成功
End?If?
End?Function
另外建議用 Try-Ctach-End Try 結(jié)構(gòu),并在釋放前設(shè)置延時(shí)函數(shù)。
第一個(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
在VB.NET中,帶框架窗體的大小是不能為0的,要想做到高、寬都為0,需要自己重繪一個(gè)無邊框窗體,用外置圖片來繪制,配合PS做一些圖片,既可以換膚還能做的很漂亮。
按當(dāng)前代碼修改,你把下面的代碼粘回去就可以了,窗體的高和寬達(dá)到最小時(shí),循環(huán)會(huì)自己退出,避免無限循環(huán);
Select?Case?2
Case?Is?=?1
Dim?w?As?Integer?=?Me.Width
Do
Me.Width?-=?5?:?w?-=?5
Threading.Thread.Sleep(3)
Loop?While?Me.Width?=?w
Case?Is?=?2
Dim?h?As?Integer?=?Me.Height
Do
Me.Height?-=?5?:?h?-=?5
Threading.Thread.Sleep(3)
Loop?While?Me.Height?=?h
Case?Is?=?3
Do
Me.Opacity?-=?0.05
Threading.Thread.Sleep(120)
Loop?Until?Me.Opacity?=?0
End?Select
Sleep是掛起式等待,對(duì)于小于一個(gè)時(shí)鐘周期(一般是16ms)的等待可能是系統(tǒng)通過循環(huán)實(shí)現(xiàn)的,所以CPU使用率必然很高,另外,你sleep 1的話操作系統(tǒng)無法精確做到1m,所以你的代碼Sleep 1實(shí)際要等上若干毫秒以后才有反應(yīng)(因?yàn)?ms小于windows的一個(gè)調(diào)度周期)
解決辦法是用SetTimer的這個(gè)API
在窗體里添加一個(gè)按鈕,添加代碼:
Private Sub Command1_Click()
TimerId = SetTimer(0, 0, 1000, AddressOf TimerProc)
End Sub
添加一個(gè)模塊,添加代碼
Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Public TimerId As Long
Public Sub TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
KillTimer 0, TimerId
Form1.Print "時(shí)間到"
End Sub
需要注意的是用戶層的任何定時(shí)器設(shè)定值小于15ms時(shí)都將是不精確的
當(dāng)前標(biāo)題:vb.net延時(shí)函的簡單介紹
標(biāo)題鏈接:http://jinyejixie.com/article30/dosgppo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站導(dǎo)航、ChatGPT、定制開發(fā)、建站公司、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)