私の Windows フォームには、約 2,000,000 行で機能するこのクエリがあります。クエリを実行するとインターフェイスがフリーズし、完了するまでに約 60 秒かかります。
タスクが進行中であることをユーザーに知らせるプログレス バーを配置する方法はありますか?
私はマルチスレッドが初めてなので、助けていただければ幸いです。
時間がかかるコードは次のとおりです。
cmd.executenonquery() でのブレークポイントのフリーズ
Public Sub InsertNumberswithMsgID(ByVal messageID As Integer, ByVal tableName As String)
Dim cmd As SqlCommand = Nothing
Try
cmd = New SqlCommand(("dbo.[InsertNumbers_withMsgID]"), cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@tablename", tableName)
cmd.Parameters.AddWithValue("@msgid", messageID)
cmd.CommandTimeout = 6000
If Not cn Is Nothing And cn.State = ConnectionState.Closed Then cn.Open()
cmd.ExecuteNonQuery()
Catch ex As SqlException
Catch ex As Exception
Finally
If Not cn Is Nothing And cn.State = ConnectionState.Open Then cn.Close()
If Not cmd Is Nothing Then cmd.Dispose()
End Try
End Function