Salve a tutti, ho un problema che non riesco a risolvere.
Sto costruendo un gestionale su una videoteca per un progetto all'università, e ho un problema legato alla durata di un thread.
Questo è il codice in soggetto, che parte alla pressione di un tasto nella mia form.
Praticamente, con questa parte del programma, l'utente ha la possibilità di cercare delle informazioni su un determinato film, che vengono scaricate dal sito Imdb.codice:Thread t = new Thread() { // Su un nuovo thread cosi non blocco la finestra principale public void run() { String Temp1 = FText.getText(); // Titolo da cercare if(!Temp1.equals("")){ // Controllo sia inserito qualcosa String Url = "http://www.imdbapi.com/?t=" + Temp; // Indirizzo per la ricerca film try { DatiFilm = new Film(ElabFilm.downloadFromUrl (new URL (Url), "Mozilla/5.0")); StampaRic(DatiFilm); // Mostro il risultato della ricerca Action.setEnabled(true); // Ora posso fare una immissione dati nel db } catch (MalformedURLException e1) { // Se c'è qualche problema di url... showMessage("Service unavailable.", "Error", JOptionPane.ERROR_MESSAGE); } catch (IOException e1) { // ... o di lavoro con i dati... showMessage("Service unavailable.", "Error", JOptionPane.ERROR_MESSAGE); } } try { // Sospendo questo thread con la sleep() e passo il controllo all'altro thread sleep(5); } catch (InterruptedException ex) {} } }; t.start(); // Faccio partire il thread
Quello che non riesco a fare è bloccare la ricerca nel caso il sito sia lento a rispondere.
Diciamo, non voglio che il thread viva per più di 10 sec, perchè vuole dire che il sito è lento a rispondere, e voglio terminarlo.
Avevo pensato a un timer, ma non ho idea di come usarlo a mio vantaggio.![]()

Rispondi quotando