多線程并不一定就可以縮短時(shí)間,具體要看你上面的“過(guò)程”是否調(diào)用數(shù)據(jù)庫(kù)完成。如果調(diào)用了數(shù)據(jù)庫(kù),可以考慮用存儲(chǔ)過(guò)程替代“過(guò)程”。另外看看“過(guò)程”里是否反復(fù)打開(kāi)和關(guān)閉了數(shù)據(jù)庫(kù)連接,如果是,這才是真正的耗時(shí)動(dòng)作。如果沒(méi)調(diào)用數(shù)據(jù)庫(kù),可以考慮使用Parallel類(.net4以后)里面的函數(shù),使多個(gè)任務(wù)在多核CPU上并行運(yùn)行,縮短時(shí)間。
修武網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)2013年至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
VB.NET 2005,已經(jīng)實(shí)現(xiàn)了continue語(yǔ)法,具體是這樣操作:
如果 Continue 語(yǔ)句在 Do...Loop 循環(huán)中,請(qǐng)將該語(yǔ)句更改為 Continue Do。
如果 Continue 語(yǔ)句在 For...Next 循環(huán)中,請(qǐng)將該語(yǔ)句更改為 Continue For。
如果 Continue 語(yǔ)句在 While...End While 循環(huán)中,請(qǐng)將該語(yǔ)句更改為 Continue While。
否則,請(qǐng)移除 Continue 語(yǔ)句。
用法:
For i As Integer = 0 To 100
' If i = 50 跳過(guò) Console.Writeline statement
If i = 50 Then Continue For
Console.WriteLine(i.ToString)
Next
' Do While using Continue statement.
Dim ii As Integer = 1
Do While ii 100
ii += 1
' If ii = 50 跳過(guò) Console.Writeline statement
If ii = 50 Then Continue Do
Console.WriteLine(ii.ToString)
Loop
' While using Continue statement.
Dim iii As Integer = 1
While iii 100
iii += 1
' If iii = 50 跳過(guò) Console.Writeline statement
If iii = 50 Then Continue While
Console.WriteLine(iii.ToString)
End While
要弄清楚這兩個(gè)問(wèn)題,就要明白For循環(huán)語(yǔ)句的語(yǔ)法規(guī)則:
For循環(huán)語(yǔ)句,首先是判斷循環(huán)條件,如果循環(huán)條件不合理,則循環(huán)不執(zhí)行。
那么看第一個(gè)語(yǔ)句,循環(huán)范圍是 i = -3.5 to 5.5,顯然這個(gè)是一個(gè)從-3.5到5.5的遞增范圍,可是后面的Step卻是一個(gè)負(fù)數(shù),表示以0.5的步長(zhǎng)遞減。取值范圍要求從小到大,可是步長(zhǎng)改變卻是由大變小,顯然這個(gè)循環(huán)條件自相矛盾,所以循環(huán)將不會(huì)執(zhí)行,也就是循環(huán)執(zhí)行的次數(shù)是0次!
如果循環(huán)條件合理,則開(kāi)始執(zhí)行循環(huán)語(yǔ)句,直到根據(jù)步長(zhǎng)變換,下一個(gè)值超出循環(huán)范圍則終止。
For j = 6 to 2 Step -2
Next
完整寫法就是:
For j = 6 to 2 Step -2
Next j
Next j的意思就是下一個(gè)j值。結(jié)合本題,下一個(gè)j值等于6-2=4,這個(gè)時(shí)候,就是循環(huán)語(yǔ)句的第二個(gè)規(guī)則,判斷循環(huán)變量的值是否超出循環(huán)范圍,我們這里的j=4,顯然是在6 to 2這個(gè)范圍之內(nèi),所以循環(huán)繼續(xù),到下一個(gè)j的時(shí)候?yàn)?,依然在循環(huán)范圍內(nèi);到這里,6,4,2我們的循環(huán)執(zhí)行了3次,準(zhǔn)備第4次循環(huán)的時(shí)候j = 2 -2 = 0超過(guò)了6 to 2這個(gè)范圍,那么循環(huán)終止。
所以i循環(huán)內(nèi)的每一個(gè)j循環(huán)將執(zhí)行3次。
你確信只循環(huán)一次嗎?我看不像,在最后添加上一句msgbox jishu1,多半顯示3。
是在第二塊代碼中有問(wèn)題,你應(yīng)該把chaxun4 = xlsheet.Range("l1").Value + 2分別放到兩個(gè)條件句中初始chaxun4變量。
因?yàn)樯弦粋€(gè)Do Until atmbianhaop = xlsheet.Range("B" chaxun4).Value 循環(huán)退出后,下一個(gè)循環(huán)一開(kāi)始就符合退出條件了,所以循環(huán)沒(méi)有進(jìn)行了。
我寫了一段代碼,注意你讀取的方法,我改進(jìn)了一下 Imports System.IO ‘代碼窗體的最上端一定要聲明
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sr As StreamReader Dim TextBox As Control
Dim i As Integer
i = 1
For Each TextBox In Me.Controls
If TypeName(TextBox) = "TextBox" Then sr = New StreamReader("c:\save\" i ".ini", System.Text.Encoding.Default) ’注意選擇編碼方式,按你原來(lái)的方法,未設(shè)置編碼,顯示的是亂碼!路徑請(qǐng)按你的情況改! TextBox.Text = sr.ReadToEnd()
i += 1 End If
Next
MsgBox("已經(jīng)載入" i - 1 "個(gè)文件") End Sub注意:這樣的代碼是倒序的,第一個(gè)文本框顯示的是最后一個(gè)文件的內(nèi)容!請(qǐng)酌情處理!