vb.net 教程 6-14 终止线程的例子
生活随笔
收集整理的這篇文章主要介紹了
vb.net 教程 6-14 终止线程的例子
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
版權聲明:本文為博主原創文章,轉載請在顯著位置標明本文出處以及作者網名,未經作者允許不得用于商業目的。
在有些時候需要主動終止某個線程,這時可以調用Thread.Abort方法。
例如以下的代碼:
使用到的類:
Class clsSum2Public inputNum As IntegerPublic currentNum As IntegerPublic outputSum As Integer End Class 主線程代碼: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("終止時運行到:{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原本我們希望當子線程中循環求和計算到10時就停止并vb.net教程輸出和值,但是實際常常得到的結果是:
或者
也就是說,根本沒有運行到testSum.outputSum=sum,這就需要隨時保存outputSum的值。
修改后的代碼如下:
運行結果:
或者主線程大意了,放子線程多運行了一次循環:
這個例子說明了些問題:
1、線程其實并不好控制,需要多練習
2、將輸出值放到了循環內部,每次循環都運行一次,實際占用了資源
在下一節將講述如何更好的控制線程的終止。
總結
以上是生活随笔為你收集整理的vb.net 教程 6-14 终止线程的例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: scanf sscanf 的用法
- 下一篇: e4a html文本,E4A 怎么将剪贴