欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

vb點(diǎn)虐 線程實(shí)例的簡(jiǎn)單介紹

vb點(diǎn)虐 中如何結(jié)束一個(gè)線程

vb點(diǎn)虐 中如何結(jié)束一個(gè)線程

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

一般而言,如果您想終止一個(gè)線程,您可以使用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())

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

Abort方法是會(huì)導(dǎo)致線程跳出一個(gè)異常錯(cuò)誤的,你需要在代碼中捕獲該異常。下面是一個(gè)比較完整的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()方法用來永久銷毀一個(gè)線程,而且將拋出ThreadAbortException異常。使終結(jié)的線程可以捕獲到異常但是很難控制恢復(fù),僅有的辦法是調(diào)用Thread.ResetAbort()來取消剛才的襪昌簡(jiǎn)答調(diào)用,而且只有當(dāng)這個(gè)異常是由于被調(diào)用線程引起的異常。因此,A線程可以正確的使用Thread.Abort()方法作用于B線程,但是B線程卻不能調(diào)用Thread.ResetAbort()來取消Thread.Abort()操作。

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

VB NET(Visual Basic NET)是為適應(yīng)Microsoft NET框架的需要 對(duì)Visual Basic進(jìn)行了重大改造后的開發(fā)工具 它比Visual Basic 功能更強(qiáng)大 更易于使用 其中最重要的變化就是對(duì)象繼承 在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處理多線程一樣簡(jiǎn)單了 下面我們就舉個(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è)方法很簡(jiǎn)單 只有一個(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

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

Public?Class?Form1

Public?Class?SquareClass?'把多線程調(diào)用的函數(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?'多線程返回值測(cè)試,當(dāng)線程運(yùn)行完成激發(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?'響應(yīng)事件函數(shù)

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

End?Sub

End?Class

網(wǎng)站欄目:vb點(diǎn)虐 線程實(shí)例的簡(jiǎn)單介紹
URL網(wǎng)址:http://www.chinadenli.net/article10/ddpiego.html

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

廣告

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

成都網(wǎng)頁(yè)設(shè)計(jì)公司