Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

João Fernandes dos Santos

Progress Bar com Tempo do Banco de dados (Sql Server)

Recommended Posts

Pessoal, boa tarde.

 

Tenho um form que faz a consulta no banco de dados e retorna em um datagrid porém essa consulta esta demorando muito e quero colocar um progress bar para o usuário não ficar clicando ou achando que travou o sistema, porém não estou achando nada referente a isso, achei progress bar que nós mesmos definimos o tempo e não é isso que quero.

 

Quero algum que quando clicar para rodar ele inicia automaticamente e quando terminar a consulta ele fecha.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola era isso mesmo que estava precisando.

 

Mas quero mais um ajudinha.

 

Estou tentando converter essa função para VB e não estou conseguindo. (ja usei programas de oconversão e não da certo.)

private void TarefaLonga(int p) { 
     for (int i = 0; i <= 10; i++) { 
Thread.Sleep(p); 
label2.BeginInvoke( new Action(() => { 
                 label2.Text = "Tarefa: " + i.ToString() + " comcluída"; 
                } )); 
  } 
}


Conseguindo esse código, ta resolvido meu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

Private Sub TarefaLonga(p As Integer)
   For i As Integer = 0 To 10
      Thread.Sleep(p)
      label2.BeginInvoke(New Action(Function() 
         label2.Text = "Tarefa: " + i.ToString() + " concluída"
      End Function))
   Next
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu grande problema nesse código é o beginInvoke, porque provavelmente não vai dar para você manipular o objeto de dentro a não sei que você passe o caminho completo do form com o label, veja esse: http://stackoverflow.com/questions/6295552/trying-to-understand-control-begininvoke-code-over-at-msdn

 

Veja se resolve:

 

Private Sub TarefaLonga(p As Integer)
        For i As Integer = 0 To 10
            System.Threading.Thread.Sleep(p)
            label2.BeginInvoke(New Action(Sub()
                                              label2.Text = "Tarefa: " & i.ToString() & " concluída"
                                          End Sub))
        Next
    End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.