vb.net 教程 6-14 终止线程的例子
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)?jiān)陲@著位置標(biāo)明本文出處以及作者網(wǎng)名,未經(jīng)作者允許不得用于商業(yè)目的。
在有些時(shí)候需要主動(dòng)終止某個(gè)線(xiàn)程,這時(shí)可以調(diào)用Thread.Abort方法。
例如以下的代碼:
使用到的類(lèi):
Class clsSum2Public inputNum As IntegerPublic currentNum As IntegerPublic outputSum As Integer End Class 主線(xiàn)程代碼:Sub sample9()Dim maxNum As Integer = 20Dim sumNumber As New clsSum2sumNumber.inputNum = maxNumDim sample9_Thread As New Thread(AddressOf sample9_getSum)sample9_Thread.Start(sumNumber)Do Until sumNumber.currentNum >= 10Thread.Sleep(100)Loopsample9_Thread.Abort()Console.WriteLine("終止時(shí)運(yùn)行到:{0},和為:{1}", sumNumber.currentNum, sumNumber.outputSum)Console.ReadKey()End SubSub sample9_getSum(ByVal obj As Object)Dim testSum As New clsSum2testSum = CType(obj, clsSum2)Dim sum As Integer = 0For i As Integer = 0 To testSum.inputNumsum += itestSum.currentNum = iThread.Sleep(100)NexttestSum.outputSum = sumEnd Sub原本我們希望當(dāng)子線(xiàn)程中循環(huán)求和計(jì)算到10時(shí)就停止并vb.net教程輸出和值,但是實(shí)際常常得到的結(jié)果是:
或者
也就是說(shuō),根本沒(méi)有運(yùn)行到testSum.outputSum=sum,這就需要隨時(shí)保存outputSum的值。
修改后的代碼如下:
運(yùn)行結(jié)果:
或者主線(xiàn)程大意了,放子線(xiàn)程多運(yùn)行了一次循環(huán):
這個(gè)例子說(shuō)明了些問(wèn)題:
1、線(xiàn)程其實(shí)并不好控制,需要多練習(xí)
2、將輸出值放到了循環(huán)內(nèi)部,每次循環(huán)都運(yùn)行一次,實(shí)際占用了資源
在下一節(jié)將講述如何更好的控制線(xiàn)程的終止。
總結(jié)
以上是生活随笔為你收集整理的vb.net 教程 6-14 终止线程的例子的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: scanf sscanf 的用法
- 下一篇: e4a html文本,E4A 怎么将剪贴