【发布时间】:2008-09-15 15:00:45
【问题描述】:
我在我的 Delphi 应用程序中使用 Python 为 Delphi 组件托管 Python 脚本。我想创建通过脚本继续运行的后台任务。
是否可以创建即使脚本执行结束也继续运行的线程(但不能创建继续运行的主机进程)。我注意到如果执行脚本结束并且有线程正在运行,程序就会卡住。但是,如果我等到线程完成,一切都会好起来的。
我正在尝试对线程使用“线程”标准模块。
【问题讨论】:
我在我的 Delphi 应用程序中使用 Python 为 Delphi 组件托管 Python 脚本。我想创建通过脚本继续运行的后台任务。
是否可以创建即使脚本执行结束也继续运行的线程(但不能创建继续运行的主机进程)。我注意到如果执行脚本结束并且有线程正在运行,程序就会卡住。但是,如果我等到线程完成,一切都会好起来的。
我正在尝试对线程使用“线程”标准模块。
【问题讨论】:
如果有帮助,Python 有自己的标准线程模块。您可以使用 threading 模块创建线程对象。
thread 模块使用简单的 Lock 对象提供低级线程和同步。
同样,不确定这是否有帮助,因为您在 Delphi 环境下使用 Python。
【讨论】:
如果一个进程死了,它的所有线程都死了,所以解决方案可能是一个单独的进程。
看看创建一个 xmlrpc 服务器是否对你有帮助,这是一个简单的进程间通信解决方案。
【讨论】:
根据定义,线程是同一进程的一部分。如果您希望它们继续运行,则需要将它们分叉到一个新进程中;请参阅 os.fork() 和朋友。
您可能希望新进程在生成脚本后立即结束(通过 exit() 等)。
【讨论】: