Salve a tutti,
ho scritto un'applicazione che usa Swing per la gui ed in modo periodico deve invocare un processo esterno eseguendo un .exe che genera dei file che devono essere inviati ad un server remoto.
Tutto questo processo della generazione dei file e del loro upload al server non interferisce minimamente con la gui che continua a lavorare per conto suo nell'EDT di Swing.
Per implementare questo sistema non ho quindi utilizzato gli oggetti di Swing per eseguire l'upload dei files in un altro thread come SwingUtilities.invokeLater o SwingWorker e sincronizzare il tutto con l'EDT, visto che questo processo che genera ed invia i files al server non interferisce minimamente con ciò che viene mostrato nella gui.
Ho semplicemente provveduto a creare un nuovo Thread a cui ho passato un oggetto Runnable nel cui metodo run() ho fatto tutto.
Poi ho settato questo thread come daemon thread e l'ho avviato con start().
Tutto quì.
Volevo solo una conferma di aver seguito la strada giusta nel non utilizzare affatto gli oggetti di Swing per gestire l'altro thread.
Per invocare l'eseguibile esterno ho ovviamente utilizzato l'oggetto Runtime di java con un normale Runtime.exec(...) all'interno del metodo run() del Runnable passato al Thread.
Grazie in anticipo!
![]()