Un thread de travail qui se termine et se libère tout seul
Salut !
Je suis confronté à un problème un peu bloquant, donc je vous en fait part:
Disons que j'ai dans mon application une classe Données qui permet de stocker des données.... on peut donc, par son interface publique, en ajouter et y accéder. Comme ces données peuvent provenir de plusieurs sources, et que le remplissage dot être asynchrone, j'ai délégué cette mission à des threads, selon le schéma suivant:
http://i2.photobucket.com/albums/y31...ck/donnees.gif
Voici donc mon problème :
Dans le thread principal, je créé à la fois une instance de Données, et une instance d'un flux pour l'alimenter. Données n'a pas connaissance de ce flux, parcequ'elle n'a pas à savoir qui la remplit, ce n'est pas son problème :wink:
Comment faire, donc, pour que FluxDonneesFichier soit libéré de la mémoire quand il a fini son travail ? J'ai bien tenté le delete this; à la fin de la méthode run(), mais visiblement, le fait de désallouer de la mémoire qui a été allouée dans un autre thread pose problème... :cry:
Comment faire donc, sachant que je ne veux pas trop casser la modularité du truc (mon idée de départ c'était "je créé un thread pour remplir les données, et je ne m'en occupe plus du tout")...
Est-ce que vous avez des idées ?
Merci!
:D
Bilbiothèque portable de gestion du multitâche.
Comme j'avais également besoin de gèrer le multi-tâche de manière portable (Windows et Linux), je me suis créée une bibliothèque qui propose une fonction prenant deux paramètres. D'une part, un pointeur sur la fonction à lancer dans un autre thread, et, d'autre part, un autre pointeur que la dite fonction reçoit en paramètre. Cette bibliothèque s'appuie sur pthread_create sous Linux et _beginthread sous Windows.
Pour plus de détails, voir la bibliothèque mtk sur le site http://epeios.org/. La documentation est , comment dire ..., extrêmement succinte, mais elle sera enrichie au fil des questions.
Soit dit en passant, sur ce même site, il y a également des bibliothèques gèrant des fonctionnalités réseau de manière tout aussi portable ...