2008-09-15 11 views
1

J'héberge un script Python avec Python pour les composants Delphi dans mon application Delphi. Je voudrais créer des tâches d'arrière-plan qui continuent à fonctionner par script.Comment créer des threads sous Python pour Delphi

Est-il possible de créer des threads qui continuent à fonctionner même si l'exécution du script se termine (mais pas le processus hôte, qui continue à fonctionner). J'ai remarqué que le programme est bloqué si le script d'exécution se termine et que le thread est en cours d'exécution. Cependant, si j'attends que le fil soit fini, tout va bien. J'essaie d'utiliser un module standard de "filetage" pour les filetages.

Répondre

0

Les fils font par définition partie du même processus. Si vous voulez qu'ils continuent à fonctionner, ils doivent être débités dans un nouveau processus; voyez os.fork() et amis.

Vous voudrez probablement que le nouveau processus se termine (via exit() ou autre) immédiatement après la génération du script.

+0

L'exécution du script dans les applications hôtes se termine, mais le processus continue. – Harriv

0

Si un processus meurt, tous ses threads meurent, une solution peut donc être un processus distinct.

Voyez si la création d'un serveur xmlrpc peut vous aider, c'est une solution simple pour la communication interprocessus.

2

Python possède son propre module d'enfilage qui est livré en standard, si cela peut aider. Vous pouvez créer des objets de fil à l'aide du module de filetage.

threading Documentation

thread Documentation

Le module fil offre filetage bas niveau et synchronisation à l'aide de simples objets de verrouillage.

Encore une fois, je ne sais pas si cela vous aide puisque vous utilisez Python dans un environnement Delphi.