Okay pour l'interuption, ca me servira très certainement un peu plus tard
Pour en revenir a mon problème, MonObjet n'est pas un thread. Mon objet instancie le thread Rafraichissement. J'aimerai que Rafraichissement appel une fonction de l'instance de MonObjet qui l'a créé.
J'avais pensé à ça :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| public class MonObjet {
public MonObjet() {
...
}
public void ajouterRafraichisseur () {
Rafraichisseur rafraichisseur = new Rafraichisseur(this);
rafraichisseur.start();
}
public void traiterInfos(Infos infos) {
...
}
}
public class Rafraichisseur extends Thread {
private MonObjet listener;
public Rafraichisseur (MonObjet listener) {
this.listener = listener;
}
private Infos checkSource() {
// check la source
}
public void run () {
while(this.isAlive) {
Infos nouvellesInfos;
nouvellesInfos = this.checkSource();
if (nouvellesInfos != null) {
this.listener.traiterInfos(nouvellesInfos);
}
Thread.sleep(100);
}
}
} |
Mais étant encore débutant dans la programmation avec thread, conscient des problèmes qu'ils peuvent génères et un peu pésimiste, je me suis dit que ce ne serai surement pas la bonne méthode.
Mes recherches sur les thread ne m'ont pas permis de savoir si on pouvait faire l'appel de la méthode "traiterInfos" depuis le thread. J'imagine que même si c'était possible il y aurai également des problèmes de criticité sur cette méthode (synchronise s'applique-t-il a une méthode qui n'appartiend pas a un thread?)...
J'ai trouvé des exemples ou le thread et son père communiquent par Socket ou par Pipe, mais ca nessecite une boucle au niveau de MonObjet, ce qui ne m'arrange pas...
Partager