如何在Delphi中为Python创建线程

1 投票
3 回答
1302 浏览
提问于 2025-04-11 00:13

我在我的Delphi应用程序中使用Python for Delphi组件来运行Python脚本。我想创建一些后台任务,让它们通过脚本持续运行。

我想知道是否可以创建一些线程,让它们在脚本执行结束后仍然继续运行(但主程序仍然在继续运行)。我发现如果正在执行的脚本结束,而有线程在运行时,程序会卡住。不过如果我等到线程完成,程序就一切正常。

我正在尝试使用“threading”这个标准模块来处理线程。

3 个回答

0

如果一个程序崩溃了,它里面的所有线程也会一起崩溃,所以一个解决办法是使用一个单独的程序。

你可以试试看创建一个xmlrpc服务器,这是一种简单的方式来让不同的程序之间进行沟通。

0

线程的定义是它们属于同一个进程。如果你想让它们继续运行,就需要把它们分离到一个新的进程中;可以看看 os.fork() 这类的函数。

你可能希望新的进程在启动脚本后立即结束(可以用 exit() 或类似的方式)。

2

Python自带了一个线程模块,可以直接使用。如果你需要的话,可以用这个模块来创建线程对象。

线程模块文档

线程模块文档

这个线程模块提供了比较基础的线程功能和同步机制,使用起来很简单,比如可以用Lock对象来控制线程的运行。

不过,我不太确定这对你有帮助,因为你是在Delphi环境下使用Python。

撰写回答