Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    VB6 - Thread ed oggetti Com

    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

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Non mi è chiara questa creazione di un thread ... come lo crei il thread? O stai creando un processo ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ciao...

    è un thread per ogni terminale.

    E' un programma che non ho scritto io (ma che devo modificare), ma se non ho capito male, il thread viene creato nel seguente modo:

    '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")


    Hai qualche idea per risolvere tale problema??

    Ti è chiaro come deve funzionare?... se hai qualche soluzione dimmi.. pure, posso anche cambiare l'architettura del progetto.


    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.