Я нашел решение в этом. Я добавил thead.sleep, если соединение открыто.
Вот код:
Public Sub populateGrid(ByVal sql As String, ByVal grd As GridView)
Try
cmd = New SqlCommand(sql)
da = New SqlDataAdapter(sql, conn)
If conn.State = ConnectionState.Open Then
System.Threading.Thread.Sleep(3000)
End If
conn.Open()
ds = New DataSet
da.Fill(ds)
grd.DataSource = ds
grd.DataBind()
conn.Close()
Catch ex As Exception
Throw ex
Finally
conn.Close()
End Try
End Sub
Я добавил 3 секунды, чтобы можно было продолжить 1-й процесс, а когда он закончится, другой процесс продолжится.