Originariamente inviato da Marcolino21
Salve
sto modificando un codice e vorrei il vostro aiuto per quanto concerne i tread;

In pratica subito dopo il objSync.ReadRegister devo eseguire una chiamata a objSync.Exectrova() (vedi parte nuovo codice inserito da me), ma mi succede che nel try questa parte mi viene ripetutata almeno 5 volte per via delle sincronizazzioni, come mai ? Come posso ovviare all'inconveniente e gestirla solo una volta al passaggio nella while ?

codice:
 
public void run ()
    {

        while(true)
        {
            
            try
            {
 
                // non c'era protocol come parametro
               objSync.ReadRegister(unitid, protocol, ref,funzione, count, repeat,tipo_registro);
                // 
  
            }
            catch (Exception e)
            {
                objSync.TraceErr("Errore transizione - Thread " + t.getName());
            }

                    
            
            try
            {
               // Nuovo Codice 

                System.out.println("INIZIO CHIAMATA"); 
                objSync.Exectrova();
                System.out.println("FINE CHIAMATA");  

              // Fine nuovo Codice
                
                this.t.sleep(600000);
                                           
            }
            catch(java.lang.InterruptedException ex)
            {
                objSync.TraceErr("Errore sleep Thread " + t.getName());
            }

         }

    }
In pratica mi ripete 5 volte per quanti sono i Thread, non è che il problema è legato alla chiamata Exectrova() che è nella classe objSync ? Nessuno mi sa aiutare ?
Grazie