Voilà je voudrais qu'une tâche ne puisse pas prendre plus de x seconds à s'exécuter. Si c'est le cas, je veux l'arrêter.
Cette tâche regarde le contenu d'une liste. Si elle ne trouve pas l'élément recherché, le thread associé s'endort pendant 0 à 3 secondes. Ensuite elle regarde de nouveau dans la liste et ainsi de suite .... Si l'élément recherché n'apparait jamais dans la liste, on a alors une boucle infinie => je ne suis dit que je pourrais associer un timer à ce thread. Quand celui-ci est terminé, le thread arrête la tâche en cours puis continue son exécution. Le code donne ceci pour le moment:
DatagramPacket rPacket = null;
while ( rPacket == null ) {
rPacket = PacketList.get(Identifier);
try {
// Generate a random number between 0.0 and 3.0
double r = Math.random() * 3.0;
// Sleep between 0 and 3 seconds.
Thread.sleep((long)(r * 1000));
} catch (InterruptedException e) {}
}
PacketList appartient à un autre classe. Un autre thread se charge d'écrire dans cette liste.
Merci de votre aide.
Partager