マルチスレッドにて処理途中で全スレッドをアボートさせたい
- 題名: マルチスレッドにて処理途中で全スレッドをアボートさせたい
- 著者: Mike3
- 日時: 2004/02/02 19:34:59
- ID: 2347
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: マルチスレッドにて処理途中で全スレッドをアボートさせたい
- 著者: よねKEN
- 日時: 2004/02/02 22:57:26
- ID: 2352
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: マルチスレッドにて処理途中で全スレッドをアボートさせたい
- 著者: Mike3
- 日時: 2004/02/03 0:30:35
- ID: 2353
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
このたび、VB.NETでマルチスレッドを初体験しております。
そこで、以下の問題が生じましたので、もし分かる方がいらっしゃいましたら、ご教授をお願い致します。
問題点:開始ボタンで、マルチスレッドを開始し、停止ボタンが押された場合、処理の途中であっても、全スレッドを終了させたいのですが、記述方法がヘルプを読みましても分かりません。
使用コントロール リストボックス1、ボタン1、ボタン2
以下ソース−−−−−−−−−−−−−−−−−−
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows フォーム デザイナで生成されたコード "
省略
#End Region
Public TestThread As New TestThreadClass
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'開始
Dim i As Integer
For i = 1 To 3
Dim TestThread As New TestThreadClass
Dim otter As New System.Threading.ThreadStart(AddressOf TestThread.MainThread)
Dim oThread As New System.Threading.Thread(otter)
AddHandler TestThread.TestEvent, AddressOf TestDoneHandler
TestThread.lngCount = i * 3
oThread.Start()
Next
End Sub
Protected Sub TestDoneHandler(ByVal lngValue As Long)
ListBox1.Items.Add(CStr(lngValue))
End Sub
Class TestThreadClass
Public Event TestEvent(ByVal lngValue As Long)
Public lngCount As Long
Sub MainThread()
Dim lngValue As Long
Dim i As Integer
For i = 1 To lngCount * 50000000
lngValue = lngValue + i
Next
RaiseEvent TestEvent(lngValue)
End Sub
End Class
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'停止
'?
End Sub
End Class
ここまで−−−−−−−−−−−−−−−−−−
根本的に誤っているかもしれませんが、よろしくお願い致します。