pee2002
Power Member
Estou com um grave problema no meu código da faculdade e gostaria que alguém me ajudasse
É assim: Eu tenho que desenvolver uma aplicação que comunica com um automato atraves do protocolo hostlink da OMRON. Até aqui tudo bem, o programa esta a comunicar e por ai fora. Mas acontece que umas das funcionalidades é de supervisão e para isso eu preciso de estar por exemplo de 3 em 3 segundos a comunicar com o automato. Isso implica o uso do Sleep(250) e como já estão a ver o meu programa de 3 em 3 segundos tem um "freeze" de 250ms. O que é aborrecido.
A ideia seria converter a minha função:
Numa thread à parte para que o "freeze" não ocorra.
Alguem sabe como o fazer?
Obrigado
É assim: Eu tenho que desenvolver uma aplicação que comunica com um automato atraves do protocolo hostlink da OMRON. Até aqui tudo bem, o programa esta a comunicar e por ai fora. Mas acontece que umas das funcionalidades é de supervisão e para isso eu preciso de estar por exemplo de 3 em 3 segundos a comunicar com o automato. Isso implica o uso do Sleep(250) e como já estão a ver o meu programa de 3 em 3 segundos tem um "freeze" de 250ms. O que é aborrecido.
A ideia seria converter a minha função:
Código:
Public Function ComunicaAutomato(ByVal trama As String) As String
Dim tramaDEresposta As String = ""
Try
Form.SerialPort.Open()
Form.SerialPort.Write(trama)
[SIZE="4"][B]System.Threading.Thread.Sleep(250)[/B][/SIZE]
tramaDEresposta = Form.SerialPort.ReadExisting
Catch ex As Exception
FormSupervisao.TimerRefresh.Stop()
MessageBox.Show(ex.Message & vbCrLf & "Comunicações Paradas!", "Erro de Comunicação", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Form.SerialPort.Close()
Return tramaDEresposta
End Function
Numa thread à parte para que o "freeze" não ocorra.
Alguem sabe como o fazer?
Obrigado