成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

vb點虐 線程實例的簡單介紹

vb點虐 中如何結束一個線程

vb點虐 中如何結束一個線程

在錦江等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都做網(wǎng)站、網(wǎng)站建設 網(wǎng)站設計制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站建設,成都營銷網(wǎng)站建設,成都外貿網(wǎng)站建設,錦江網(wǎng)站建設費用合理。

一般而言,如果您想終止一個線程,您可以使用System.Threading.Thread類的Abort方法. 例如:

Dim worker As ThreadStart = New ThreadStart(AddressOf workerthreadmethod)

Dim t As Thread = New Thread(worker)

t.Start()

MessageBox.Show("Wait for a while for the thread to start.")

MessageBox.Show(t.ThreadState.ToString())

t.Abort()

MessageBox.Show(t.ThreadState.ToString())

t.Join()

MessageBox.Show(t.ThreadState.ToString())

當然,在調用Abort方法后,線程并不是立刻終止,要等線程的所有finally快中的代碼完成后才會完全終止. 所以在主線程中可以用Join方法來同步,當線程還未完全終止時,t.Join()將處于等待,直到t線程完全結束后再繼續(xù)執(zhí)行后面的語句。

Abort方法是會導致線程跳出一個異常錯誤的,你需要在代碼中捕獲該異常。下面是一個比較完整的VB.NET線程告咐扒例子:

Imports System

Imports System.Threading

Public Class MyTestApp

Public Shared Sub Main()

Dim t As New Thread(New ThreadStart(AddressOf MyThreadMethod))

'Start the thread

t.Start()

MsgBox("Are you ready to kill the thread?")

'Kill the child thread and this will cause the thread raise an exception

t.Abort()

' Wait for the thread to exit

t.Join()

MsgBox("The secondary thread has terminated.")

End Sub

Shared Sub MyThreadMethod()

Dim i As Integer

Try

Do While True

Thread.CurrentThread.Sleep(1000)

Console.WriteLine("This is the secondary thread running.")

Loop

Catch e As ThreadAbortException

MsgBox("This thread is going to be terminated by the Abort method in the Main function")

End Try

End Sub

End Class

Thread.Abort()方法用來永久銷毀一個線程,而且將拋出ThreadAbortException異常。使終結的線程可以捕獲到異常但是很難控制恢復,僅有的辦法是調用Thread.ResetAbort()來取消剛才的襪昌簡答調用,而且只有當這個異常是由于被調用線程引起的異常。因此,A線程可以正確的使用Thread.Abort()方法作用于B線程,但是B線程卻不能調用Thread.ResetAbort()來取消Thread.Abort()操作。

同Java一樣簡單!VB.NET多線程開發(fā)實例

VB NET(Visual Basic NET)是為適應Microsoft NET框架的需要 對Visual Basic進行了重大改造后的開發(fā)工具 它比Visual Basic 功能更強大 更易于使用 其中最重要的變化就是對象繼承 在VB NET中 所有可管理的類型都衍生自System Object 作為編程工具 最重要的一個特性就是垃圾碎片的回收 它由CLR(Common Language Runtime)進行控制 并提供更好的內存管理功能 通用的類型定義可以提供更好的互操作性和協(xié)同工作能力 因此 VB NET顯得更強大 更具可靠性 在VB NET中 大多數(shù)CLR內建的類型都在System名字空間里已經(jīng)定義了 比如 System Object System Int 和 System String 要注意的是 一個名字空間可能嵌在另一個名字空間內 象System Data里就有System Data DataSet的類 代表是CLR編程模型很重要的一個新概念 代表是一個特殊類型的可管理的類 當你創(chuàng)建一個代表的實例時 你必須提供一個帶有匹配簽名的方法執(zhí)行的地址 一旦創(chuàng)建了一個代表的實例 調用方法將變的很容易 過去 我們利用VB開發(fā)多線程的應用程序時 是一件很令人痛苦的事 經(jīng)常是多線程的程序運行是會變成多錯誤的程序!但在VB NET中 這種狀況已經(jīng)大為改觀 現(xiàn)在 我們利用VB NET處理多線程和利用JAVA處理多線程一樣簡單了 下面我們就舉個例子 來看看VB NET的多線程吧!下面是多線程程序threadtest vb的代碼 imports Systemimports System Threadingpublic class AClasspublic sub Method ()Dim i as integerFor i = to Console Writeline( 這是類AClass方法method 的內容 i)nextend subpublic sub Method ()Dim i as integerFor i = to Console Writeline( 這是類AClass方法method 的內容 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方法里的內容 i)Nextend subend class現(xiàn)在 來讓我們剖析一下上面的例子 我們創(chuàng)建了我們自己的類AClass 并創(chuàng)建了兩個方法 Method 和Method 這兩個方法很簡單 只有一個For循環(huán) 向輸出設備輸出一些信息 我們還定義了另外一個類ThreadTest來使用上面創(chuàng)建的類AClass 在Main()方法中 我們創(chuàng)建了類Thread的實例 類Thread可以在System Threading名字空間里得到 它定義了處理線程的屬性和方法 在類Thread的構造器中 我們使用了類ThreadStart 類ThreadStart是一個代表 標志著當一個線程開始時就開始執(zhí)行定義的方法 為了執(zhí)行定義的方法 我們實際調用的是線程的Start()方法 用VBC來編譯上面的程序 vbc /out:threadtest exe threadtest vb 運行編譯后的程序 我們將會看到我們定義的兩個方法和main()方法的混合輸出 這就說明每一個方法都在自己的線程下運行 除圓配了上面的方法 線程還有下面常用的方法 Stop():停止線程的運行 Suspend() 暫停線程的運行 Resume() 繼續(xù)線程的運行 Sleep() 停止線程一段時間(單位為毫秒) lishixinzhi/Article/program/net/201311/11287

vb點虐 多線程如何返回參數(shù),舉個例子,謝謝

Public?Class?Form1

Public?Class?SquareClass?'把多線程調用的函數(shù)封裝到類中,通過類事件返回

Public?Value?As?Double

Public?Square?As?Double

Public?Event?ThreadComplete(ByVal?Square?As?Double)

派螞????Public?Sub?CalcSquare()

Square?=?Value?*?Value

RaiseEvent?ThreadComplete(Square)

End?Sub

End?Class

Dim?WithEvents?oSquare?As?SquareClass

困銷??Private?Sub?Button1_Click(sender?As?Object,?e?As?EventArgs)?Handles?Button1.Click?'多線程返回值測試,當線程運行完成激發(fā)事件

oSquare?=?New?SquareClass()

塵尺埋??????Dim?t?As?New?Threading.Thread(AddressOf?oSquare.CalcSquare)

oSquare.Value?=?30

t.Start()

End?Sub

Sub?SquareEventHandler(ByVal?Square?As?Double)?Handles?oSquare.ThreadComplete?'響應事件函數(shù)

MsgBox("The?square?is?"??Square)

End?Sub

End?Class

網(wǎng)站欄目:vb點虐 線程實例的簡單介紹
URL網(wǎng)址:http://jinyejixie.com/article10/ddpiego.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號、小程序開發(fā)、手機網(wǎng)站建設、網(wǎng)站營銷靜態(tài)網(wǎng)站、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司
临高县| 新宾| 湘潭市| 天津市| 阿勒泰市| 潢川县| 昌宁县| 新化县| 比如县| 监利县| 马山县| 乌兰浩特市| 平湖市| 察雅县| 洛宁县| 新闻| 贵定县| 革吉县| 辽中县| 天柱县| 怀柔区| 老河口市| 营口市| 安吉县| 临清市| 德江县| 图木舒克市| 广东省| 平远县| 琼海市| 正安县| 新田县| 孟州市| 平顶山市| 沧州市| 喀什市| 阳曲县| 天峻县| 台江县| 明光市| 东乡|