2011-08-24 16 views
5

Al momento ho un esecutore in programma, che invia un messaggio dopo un ritardo del genere in programma Devo interrompere il messaggio precedente dall'invio. Se non viene ricevuto alcun messaggio di annullamento, la procedura sopra invia normalmente. qual'è il miglior modo per farlo?Annullamento esecutore

Grazie.

risposta

9

Questo può essere fatto utilizzando il valore restituito

ScheduledFuture<?> future = executor.schedule(new Runnable() { 
     public void run() { 
     emitter.emit(message); 
    } 
    }, delay, TimeUnit.MILLISECONDS); 
future.cancel(true); //true if task should be interrupted 

oppure utilizzando il metodo shutdown() dell'esecutore.
Date un'occhiata a shutdown() e cancel()

Problemi correlati