のデータを取得してメインスレッドに返すバックグラウンドスレッドを作成しました。これは機能します。ここで、メインスレッドからのSQL要求を停止できるようにしたいと思います(おそらくボタンをクリックしたとき)。
これは、スレッドを作成するための私のテストコードです(動作中):
Private Sub GetSql()
If (Me.InvokeRequired) Then
Me.Invoke(New GetSqlDelegate(AddressOf GetSql))
Else
Dim da As SqlDataAdapter = New SqlDataAdapter("select * from database", _
New SqlConnection(connectionString))
dt = New DataTable
da.Fill(dt)
Me.BeginInvoke(New BindDataToGridDelegate(AddressOf BindDataToGrid))
End If
End Sub
Private Delegate Sub BindDataToGridDelegate()
Private Sub BindDataToGrid()
DataGridView1.DataSource = dt
dt = Nothing
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
thrGetData = New Thread(AddressOf ThreadBackgroundData)
thrGetData.IsBackground = True
thrGetData.Start()
End Sub
バックグラウンドスレッドにアクセスして、オンデマンドでクエリを停止するにはどうすればよいですか?
メインスレッドにフラグを設定して、バックグラウンドスレッドに実行を停止するように指示し、バックグラウンドスレッドに定期的にメインスレッドをポーリングさせる必要がありますか?
どんな助けでもいただければ幸いです。例を探していましたが、良い例が見つかりませんでした。擬似コードでさえ役立つでしょう
ありがとう。