Ich habe einen Hintergrundthread erstellt, der Daten abruft und sie an den Hauptthread zurückgibt; das funktioniert. Jetzt möchte ich in der Lage sein, die SQL-Anfrage vom Hauptthread zu stoppen (wahrscheinlich auf Knopfdruck).Zugriff auf einen laufenden Hintergrundthread VB.NET VS2008
Dies ist mein Test-Code für den Faden zu schaffen (in Betrieb):
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
Wie kann ich den Hintergrund-Thread Zugriff auf die Abfrage auf Anfrage zu stoppen?
Muss ich eine Markierung auf dem Hauptthread setzen, die dem Hintergrundthread sagt, um zu laufen zu stoppen, dann muss der Hintergrundthread den Hauptthread in Abständen abfragen?
Jede Hilfe wäre willkommen. Ich habe versucht, nach einem Beispiel zu suchen, aber ich konnte keinen guten finden. Sogar Pseudocode würde helfen
Danke.
Wird das Töten des Threads zu einem unerwünschten Ergebnis führen? Ich habe darüber nachgedacht, dies zu versuchen, aber ich war besorgt darüber, was auf dem SQL Server Ende der Dinge passiert. Wird der Prozess auch auf dem SQL Server beendet? Ich habe diesen [Artikel] (http://sqlblog.com/blogs/linchi_shea/archive/2010/02/04/killing-a-sql-server-thread-don-t.aspx) über das Töten von Prozessen auf SQL Server gelesen kann zu unerwünschten Ergebnissen führen. Würde dies ein ähnliches Problem verursachen? – Eric
Der Artikel befasst sich mit SQL Server-Threads - sie zu töten ist schädlich. Das Töten Ihres Anwendungsthreads wird Ihrem SQL-Server keinen Schaden zufügen. Schlimmste könnte passieren - SQL-Verbindung wird verloren gehen - die wird sowieso irgendwann. Es hat keine Möglichkeit, SQL Server-Prozess zu töten, da es unabhängig ist. –