Ir para conteúdo

Arquivado

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

Jhonatan Jorge de Lima

Problema Com Thread (Travamento de Tela )

Recommended Posts

Bom dia caros Colegas!

Estou Tentando utilizar uma Thread para executar uma função que leva um certo tempo para ser executada, pois ela busca a porta e velocidade de um modem, pooorem essa thread esta travando minha tela ao ser executada, alguem pode me dar uma força?

 

Segue Codigo do Form que esta travando Delegate Sub UpdateDelegate()



  Private Sub frmChamados_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        carregaTela()
        estadoTela(1)
        Me.Text = "Chamados - Usuário: " & UsuarioLogado.Usuario
        thrCarregaModem = New Thread(AddressOf trabalhoThr)
        thrCarregaModem.Start()
    End Sub


    Public Sub trabalhoThr()
        Dim del As UpdateDelegate = AddressOf _carregaModem
        Me.Invoke(del)
    End Sub


    Public Sub _carregaModem()
        lblStatusModem.ForeColor = Color.Gray
        lblStatusModem.Text = "Verificando Por Favor Aguarde..."
        Declaracoes.iRetorno = Declaracoes.eBuscarPortaVelocidade_MODEM_DarumaFramework()
        If Declaracoes.iRetorno = 1 Then
            lblStatusModem.Text = "Pronto Para Uso!"
            lblStatusModem.ForeColor = Color.Green
        Else
            lblStatusModem.Text = "Erro de Conexao Com Modem!"
            lblStatusModem.ForeColor = Color.Red
        End If
    End Sub

desde ja agradeço !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Solução

 Public Sub trabalhoThr()
        
        lblStatusModem.Text = "Verificando..."
        Declaracoes.iRetorno = Declaracoes.eBuscarPortaVelocidade_DUAL_DarumaFramework()
        If Declaracoes.iRetorno = 1 Then
            lblStatusModem.Text = "Pronto Para Uso!"
            lblStatusModem.ForeColor = Color.Green
        Else
            lblStatusModem.Text = "Erro de Conexao Com Modem!"
            lblStatusModem.ForeColor = Color.Red
        End If


    End Sub


    Private Sub frmChamados_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Control.CheckForIllegalCrossThreadCalls = False
        trModem = New Thread(AddressOf trabalhoThr)
        trModem.Start()
        trTela = New Thread(AddressOf carregaTela)
        trTela.Start()




    End Sub

Bem ainda ta ocorrendo uma travadinha mais acho que é alguma outra coisa e não esta parte, do mesmo jeito obrigado !!

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.