2008-09-15 5 views
1

Ich hostet Python-Skript mit Python für Delphi-Komponenten in meiner Delphi-Anwendung. Ich möchte Hintergrundaufgaben erstellen, die nach Skript ausgeführt werden.Wie Erstellen von Threads unter Python für Delphi

Ist es möglich, Threads zu erstellen, die auch dann laufen, wenn die Skriptausführung beendet wird (aber nicht der Host-Prozess, der weiter läuft). Ich habe bemerkt, dass das Programm hängen bleibt, wenn das ausführende Skript beendet wird und Thread läuft. Aber wenn ich warte, bis der Thread fertig ist, geht alles gut.

Ich versuche, "threading" Standard-Modul für Threads zu verwenden.

Antwort

0

Threads per Definition sind Teil des gleichen Prozesses. Wenn Sie wollen, dass sie weiterlaufen, müssen sie in einen neuen Prozess gespalten werden; Siehe os.fork() und Freunde.

Sie möchten wahrscheinlich, dass der neue Prozess (via exit() oder Ähnliches) unmittelbar nach dem Erstellen des Skripts beendet wird.

+0

Die Ausführung des Skripts in Host-Anwendungen endet, aber der Prozess wird fortgesetzt. – Harriv

0

Wenn ein Prozess stirbt, sterben alle Threads mit ihm, daher kann eine Lösung ein separater Prozess sein.

Sehen Sie, ob das Erstellen eines xmlrpc-Servers Ihnen helfen kann, das ist eine einfache Lösung für Interprozesskommunikation.

2

Python hat ein eigenes Threading-Modul, das Standard ist, wenn es hilft. Sie können Thread-Objekte mit dem Threading-Modul erstellen.

threading Documentation

thread Documentation

Das Gewinde-Modul bietet geringes Threading und Synchronisation einfache Sperren von Objekten verwendet wird.

Noch einmal nicht sicher, ob dies hilfreich ist, da Sie Python in einer Delphi-Umgebung verwenden.