VB NET(Visual Basic NET)是為適應(yīng)Microsoft NET框架的需要 對Visual Basic進(jìn)行了重大改造后的開發(fā)工具 它比Visual Basic 功能更強(qiáng)大 更易于使用 其中最重要的變化就是對象繼承 在VB NET中 所有可管理的類型都衍生自System Object 作為編程工具 最重要的一個(gè)特性就是垃圾碎片的回收 它由CLR(Common Language Runtime)進(jìn)行控制 并提供更好的內(nèi)存管理功能 通用的類型定義可以提供更好的互操作性和協(xié)同工作能力 因此 VB NET顯得更強(qiáng)大 更具可靠性 在VB NET中 大多數(shù)CLR內(nèi)建的類型都在System名字空間里已經(jīng)定義了 比如 System Object System Int 和 System String 要注意的是 一個(gè)名字空間可能嵌在另一個(gè)名字空間內(nèi) 象System Data里就有System Data DataSet的類 代表是CLR編程模型很重要的一個(gè)新概念 代表是一個(gè)特殊類型的可管理的類 當(dāng)你創(chuàng)建一個(gè)代表的實(shí)例時(shí) 你必須提供一個(gè)帶有匹配簽名的方法執(zhí)行的地址 一旦創(chuàng)建了一個(gè)代表的實(shí)例 調(diào)用方法將變的很容易 過去 我們利用VB開發(fā)多線程的應(yīng)用程序時(shí) 是一件很令人痛苦的事 經(jīng)常是多線程的程序運(yùn)行是會(huì)變成多錯(cuò)誤的程序!但在VB NET中 這種狀況已經(jīng)大為改觀 現(xiàn)在 我們利用VB NET處理多線程和利用JAVA處理多線程一樣簡單了 下面我們就舉個(gè)例子 來看看VB NET的多線程吧!下面是多線程程序threadtest vb的代碼 imports Systemimports System Threadingpublic class AClasspublic sub Method ()Dim i as integerFor i = to Console Writeline( 這是類AClass方法method 的內(nèi)容 i)nextend subpublic sub Method ()Dim i as integerFor i = to Console Writeline( 這是類AClass方法method 的內(nèi)容 i)橘態(tài)指nextend subend classpublic class ThreadTestpublic shared sub Main()dim obj as new aclassdim th th as thread閉棚th =new Thread(new ThreadStart(addressof thod ))th startth =new Thread(new ThreadStart(addressof thod ))th startdim i as integerFor i= to Console WriteLine( Main方法里的內(nèi)容 i)Nextend subend class現(xiàn)在 來讓我們剖析一下上面的例子 我們創(chuàng)建了我們自己的類AClass 并創(chuàng)建了兩個(gè)方法 Method 和Method 這兩個(gè)方法很簡單 只有一個(gè)For循環(huán) 向輸出設(shè)備輸出一些信息 我們還定義了另外一個(gè)類ThreadTest來使用上面創(chuàng)建的類AClass 在Main()方法中 我們創(chuàng)建了類Thread的實(shí)例 類Thread可以在System Threading名字空間里得到 它定義了處理線程的屬性和方法 在類Thread的構(gòu)造器中 我們使用了類ThreadStart 類ThreadStart是一個(gè)代表 標(biāo)志著當(dāng)一個(gè)線程開始時(shí)就開始執(zhí)行定義的方法 為了執(zhí)行定義的方法 我們實(shí)際調(diào)用的是線程的Start()方法 用VBC來編譯上面的程序 vbc /out:threadtest exe threadtest vb 運(yùn)行編譯后的程序 我們將會(huì)看到我們定義的兩個(gè)方法和main()方法的混合輸出 這就說明每一個(gè)方法都在自己的線程下運(yùn)行 除圓配了上面的方法 線程還有下面常用的方法 Stop():停止線程的運(yùn)行 Suspend() 暫停線程的運(yùn)行 Resume() 繼續(xù)線程的運(yùn)行 Sleep() 停止線程一段時(shí)間(單位為毫秒) lishixinzhi/Article/program/net/201311/11287
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括開福網(wǎng)站建設(shè)、開福網(wǎng)站制作、開福網(wǎng)頁制作以及開福網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,開福網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到開福省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
多線程是用于處理復(fù)雜項(xiàng)慎高目的
打個(gè)比方
你的主程序線程A中有個(gè)循環(huán),由于代碼是一行行走的,所以循環(huán)結(jié)束前下面的代碼無法運(yùn)行,而此時(shí)主界面的反應(yīng)就類似卡死的樣子,你點(diǎn)擊按鈕也沒有反應(yīng),因?yàn)橹骶€程在忙著循環(huán)呢,所以對按鈕的事件代碼要等待了,如果要避免這種情況,就要用到多線程,另開一個(gè)新線程專門用來執(zhí)行循環(huán)代碼,轎孝孫主界面就不會(huì)卡死閉鏈了,只要在循環(huán)結(jié)束后將結(jié)果傳回主線程調(diào)用就可以了,再復(fù)雜點(diǎn)要涉及到委托,控制了
按你的要求其實(shí)你的代碼用不到多線程,只要把sleep放到兩段代碼中間就可以了。
新線程結(jié)束用thread.abort()
Sub Main()
Dim thr As Thread
For Pi As Integer=0 To 4 //啟用5線弊尺基程
MulParams =Pi vbTab sFile vbTab dFile vbTab 1 vbTab DelN vbTab cr vbTab cg vbTab cb vbTab IndexI
GlobalParamas(pi)=MulParams .Split(vbTab)
thr=New Thread(AddressOf MyMulThreadCaller)
thr.Start() //困氏啟動(dòng)租謹(jǐn)多線程進(jìn)程
Application.DoEvents
Next
End Sub
本文題目:vb點(diǎn)虐
多線程處理 vbs 多線程
文章URL:http://jinyejixie.com/article36/ddpgcpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站維護(hù)、外貿(mào)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、虛擬主機(jī)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)