2008-09-15 5 views
1

私はDelphiアプリケーション用のPython用PythonスクリプトをDelphiコンポーネント用にホスティングしています。スクリプトで実行し続けるバックグラウンドタスクを作成したいと思います。Delphi用のPythonでスレッドを作成するには

スクリプトの実行が終了しても(実行中のホストプロセスではなく)実行しているスレッドを作成することは可能ですか?私は、実行中のスクリプトが終了してスレッドが実行中であれば、プログラムが停止することに気付きました。しかし、スレッドが完了するまで待つと、すべてがうまくいく。

スレッドに「スレッド」標準モジュールを使用しようとしています。

答えて

0

スレッドは同じプロセスの一部です。あなたがそれらを走り続けることを望むなら、彼らは新しいプロセスに踏み込む必要があります。 os.fork()と友人を参照してください。

スクリプトを作成した直後に新しいプロセスを終了させる(exit()などで)ことをお勧めします。

+0

ホストアプリケーションでのスクリプトの実行は終了しますが、プロセスは継続します。 – Harriv

0

プロセスがすべて終了してスレッドが終了すると、ソリューションは別のプロセスになる可能性があります。

xmlrpcサーバーの作成が役立つかもしれないかどうかは、プロセス間通信のための簡単な解決策です。

2

Pythonには、標準で付属する独自のスレッドモジュールがあります。スレッドモジュールを使用してスレッドオブジェクトを作成できます。

threading Documentation

thread Documentation

スレッドモジュールは、単純なロックオブジェクトを使用して、低レベルのスレッドとの同期を提供しています。

また、Delphi環境でPythonを使用しているため、これが役立つかどうかはわかりません。

関連する問題