gpt4 book ai didi

vb.net - 如何取消一个非迭代的BackGroundWorker

转载 作者:行者123 更新时间:2023-12-04 02:50:52 24 4
gpt4 key购买 nike

我在 BackGroundWorker 中有一个非迭代代码,所以我无法检查 CancellationPendig 是否存在。

代码如下。

Private Sub BgW1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BgW1.DoWork
Try
Dim conn As New MySqlConnection(My.Settings.MySQL_Cnn_Cfg)
Dim Adp As New MySqlDataAdapter
Dim TablaDatos As New DataTable

conn.Open()

Using cmd As New MySqlCommand()
cmd.CommandType = CommandType.Text
cmd.Connection = conn

cmd.CommandText = e.Argument

Adp.SelectCommand = cmd

TablaDatos.Clear()
Adp.Fill(TablaDatos)

e.Result = TablaDatos
End Using
Catch ex As Exception
e.Result = "Error!"
e.Cancel = True
End Try
End Sub

BackGroundWorker 接收一个查询字符串并返回一个数据表,如果远程服务器做出快速答复,它就可以工作,但是对于需要一些时间的复杂查询,我无法取消该过程,或者至少我不知道如何取消。

我已经尝试过了

BgW1.Dispose()

没有成功,那么还有另一种方法可以停止 BackGroundWorker 吗?

最佳答案

不,你不能。

我能看到这个工作的唯一方法是如果你有 MySQL 连接的 ID 和另一个按钮,当你点击它时它会终止那个进程,在那感觉到查询将停止并且 backgrounworker 将完成。

关于vb.net - 如何取消一个非迭代的BackGroundWorker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17787846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com