Salve ragazzi,
ho un problema con un programma sviluppato in VB6 che mi sono trovato a gestire.
Tale programma gestisce dei terminali per la lettura di barcode, e crea un Thread per ogni terminale.
Il Thread è creato utilizzando gli oggetti COM.
Il mio problema è che devo poter resettare/killare un thread indipendetente dagli altri. (attualmente se un terminale si blocca.. devo bloccare tutti gli altri 20!!, vorrei invece poter killare una sola istanza.)
Se il thread funziona riesco a bloccarlo semplicemente con:
Set mobjConnection = Nothing
ma se il thread è "impallato" (ad esempio in un loop), non c'è modo di bloccarlo! Qualcuno di voi sa come si può fare???
Dovrei far ripartire in maniera pulita l'istanza dell'oggetto COM
'save a reference to the frmMain window (to update the list of terminals)
Set mMainApp = MyClass
'create a new instance of the Connection object
Set mobjConnection = New TekWin.Connection
....
'create one TerminalProcess (one thread) per terminal.
'even if TekWin can handle more than one terminal per thread
For lIndex = mlFirstTerminal To mlLastTerminal
Set tp = CreateObject(App.EXEName & ".TerminalProcess")
tp.Initialize Me.MainApp, MyScreenSet, msTekBssAddress, mlTekBssPort, lIndex, lIndex, mlLogLevel
mcolTerminalProcess.Add Item:=tp, Key:=CStr(lIndex)
Next lIndex
gRAZIE
ho un problema con un programma sviluppato in VB6 che mi sono trovato a gestire.
Tale programma gestisce dei terminali per la lettura di barcode, e crea un Thread per ogni terminale.
Il Thread è creato utilizzando gli oggetti COM.
Il mio problema è che devo poter resettare/killare un thread indipendetente dagli altri. (attualmente se un terminale si blocca.. devo bloccare tutti gli altri 20!!, vorrei invece poter killare una sola istanza.)
Se il thread funziona riesco a bloccarlo semplicemente con:
Set mobjConnection = Nothing
ma se il thread è "impallato" (ad esempio in un loop), non c'è modo di bloccarlo! Qualcuno di voi sa come si può fare???
Dovrei far ripartire in maniera pulita l'istanza dell'oggetto COM
'save a reference to the frmMain window (to update the list of terminals)
Set mMainApp = MyClass
'create a new instance of the Connection object
Set mobjConnection = New TekWin.Connection
....
'create one TerminalProcess (one thread) per terminal.
'even if TekWin can handle more than one terminal per thread
For lIndex = mlFirstTerminal To mlLastTerminal
Set tp = CreateObject(App.EXEName & ".TerminalProcess")
tp.Initialize Me.MainApp, MyScreenSet, msTekBssAddress, mlTekBssPort, lIndex, lIndex, mlLogLevel
mcolTerminalProcess.Add Item:=tp, Key:=CStr(lIndex)
Next lIndex
gRAZIE