[vb net] Richiesta info sui thread
Sto facendo un programma in VB net che legge un flusso di dati dalla porta seriale.
Ho fatto una classe che gestisce la porta seriale e che viene usata da una applicazione form based.
Ho usato il vecchio controllo MScomm di VB6 che mi lancia l'evento Oncomm ogni volta che ci sono caratteri da leggere nella porta seriale. L'evento Oncomm invoca il metodo della classe per lo scarico dei dati dalla porta seriale
Problema:
Quando lancio il programma, l'interfaccia grafica si blocca durante la lettura dei dati dalla porta seriale perchè il controllo passa al metodo della classe che gestisce la porta seriale.
Volevo chiedervi come posso fare per usare il ThreadPool.QueueUserWorkItem per scaricare i bytes senza perdere il controllo del form
Volevo anche usare una label da mettere sul form che mi mostra il numero di bytes scaricati dal metodo della classe
Questo è l'evento che che parte ogni volta che ci sono caratteri
nella porta seriale:
-------------------------------------------------------------------------
Private Sub MSComm1_OnComm() Handles vfObjMSComm.OnComm
If vfObjMSComm.CommEvent = MSCommLib.OnCommConstants.comEvReceive Then
If False = vfObjClassRS232connection.fBolDecodeETPCommandReturn(Me.Name,vfStrErrorString,vfObjMSComm,vfRS232TimeOut, vfStrCommandReturn, vStrBlockCount) Then
Return
End If
End If
End Sub
-------------------------------------------------------------------------
Il metodo della classe è: fBolDecodeETPCommandReturn
l'ultimo parametro del metodo è: vStrBlockCount
questo parametro è passato per riferimento al metodo della classe e viene aggiornato continuamente dentro al metodo della classe e il suo contenuto dovrebbe essere mostrato da una label
sul form
Qualcuno può darmi una mano....
|