PROGRESSBAR EM ORIENTA?ÃO A OBJETOS

NOBODY 08/06/2016 08:37:19
#463180
Bom dia amigos programadores do VBMania

Estou com problemas para adaptar meu código preciso de ajuda dos programadores C# e VB.Net

Vamos lá
Minha aplicação esta no padrão OOP com as seguintes camadas: DTO, BLL, DAL e UI.

Então meu codigo trabalha da seguinte forma

Na camada UI: ProgressBar processando as informações juntoamente com um gif animado para exibir ao usuário que a plicação esta operando.
Ate ai Beleza:

Na classe BLL: Tenho o seguinte método. [FUNCIONANDO]
Public Function AddLote(ByVal List As List(Of EstoqueDTO)) As Boolean
Dim db As New EstoqueDAL
Return db.AddLote(List)
End Function

Na classe DAL: Tenho o seguinte método. [FUNCIONANDO]
Public Overloads Function AddLote(ByVal List As List(Of EstoqueDTO)) As Boolean
db = New AcessoDB
cmd = New OleDbCommand()

Try
If List.Count > 0 Then
cmd.CommandText = [Ô]INSERT INTO Estoque(Codigo,Custo,Descricao) VALUES(@Codigo,@Custo,@Descricao)[Ô]
cmd.Connection = db.Conectar([Ô]estoque.mdb[Ô])

For Each oEstoque As EstoqueDTO In List
cmd.Parameters.AddWithValue([Ô]@Codigo[Ô], oEstoque.Codigo.ToString.Trim)
cmd.Parameters.AddWithValue([Ô]@Custo[Ô], oEstoque.Custo)
cmd.Parameters.AddWithValue([Ô]@Descricao[Ô], oEstoque.Descricao.ToString.Trim)
cmd.ExecuteNonQuery()
cmd.Parameters.Clear()
Next
Return True
Else
Return False
End If
Catch ex As Exception
Throw ex
Return False
Finally
db.Desconectar()
db = Nothing
cmd = Nothing
End Try
End Function

Vamos para a questão: Quando o método [ô]AddLote[ô] da camada DAL esta trabalhando a camada UI (Form) para de responder
dando a falsa impressão que o programa esta travando pois quando o DataGridView tem mais de 300 linhas o programa pareçe
até que está travado.

Teria como o form não travar durante o processo ou a DAL se comunicar com a BLL e atualizar o Form e o progressbar.
Ou aguam solução falta apenas isso para consolidar minha aplicação Agradeço a todos vocês programadores C# e VB.Net

O codigo pode ser em C# pois cosigo converter para VB.Net
DS2T 08/06/2016 08:53:24
#463182
Você pode usar o componente BackgroundWorker para carregar seu grid numa thread diferente.

Abraços!
KERPLUNK 08/06/2016 17:49:32
#463206
Resposta escolhida
Uma boa opção é o que o DS2T falou, mas você pode também usar eventos, que podem ser capturados na UI e exibir o progresso. Como você possui várias camadas, este evento deve ser disparado da camada mais interna(DAL) que por sua vez será capturado na BLL e disparado novamente para a UI.
NOBODY 08/06/2016 18:05:53
#463209
Tem como exemplificar pois está fazendo 4 dias e não consigo terminar este projeto por conta deste problema.
Obrigado KERPLUNK
KERPLUNK 08/06/2016 18:24:12
#463211
Sem problemas. Existem vários exemplos por aí sobre isso, como no macoratti, por exemplo.
NOBODY 09/06/2016 08:50:45
#463245
Esta pagina não me ajudou e não abriu minha mente para a resposta.
Poderia me ajudar mais uma vez para que eu termine o projeto??

Obrigado: KERPLUNK
KERPLUNK 09/06/2016 18:28:08
#463271
Aí está o exemplo que você pediu em privado.
NOBODY 10/06/2016 15:26:42
#463331
OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO,OBRIGADO

Se caso você ver um erro no obrigado me avisa.
Me salvou
Tópico encerrado , respostas não são mais permitidas