2010-03-06 3 views

Répondre

5

La question que vous posez dans le titre et celle que vous posez dans le corps sont différentes.

La façon standard pour un thread différent de savoir si un thread est toujours en cours est de l'attendre ou de l'interroger en utilisant is_running et/ou is_joinable en fonction de vos besoins particuliers.

Si tout ce que vous voulez c'est que le i'm done soit imprimé, eh bien, assurez-vous que c'est la dernière instruction exécutée dans le corps du fil, et elle sera imprimée.

threads->create(sub { 
    # call the actual routine that does the work 
    print "i'm finished\n"; 
}); 
1

Je suis vraiment dans le noir ici, il est donc juste une suggestion générale: vous pouvez mettre en place un mécanisme de rappel. Si rien d'autre, vous pouvez passer un objet avec la méthode onFinish lorsque le thread démarre. Et appelez cette fonction à partir du thread quand il finit son travail (en fonction de son état interne).

Questions connexes