Python 脚本不像PyScripter那样在命令提示符下运行

Python 脚本不像PyScripter那样在命令提示符下运行,python,python-multithreading,Python,Python Multithreading,我正在用PyScripter开发一个脚本。当我在PyScripter中运行它时,它运行得相当好。 但是,脚本包含两个单独的线程(一个线程对象和脚本的主流程)。当我从命令提示符运行脚本时,它会卡在线程中。它不会给人以执行主进程的印象,而且它永远不会结束,当我在PyScripter中运行它时,它就是这样做的。我该怎么办?在代码中,使用join()中的timeout对线程进行时间约束。比如说 .... yourThread = threading.Thread() yourThread.start()

我正在用PyScripter开发一个脚本。当我在PyScripter中运行它时,它运行得相当好。
但是,脚本包含两个单独的线程(一个线程对象和脚本的主流程)。当我从命令提示符运行脚本时,它会卡在线程中。它不会给人以执行主进程的印象,而且它永远不会结束,当我在PyScripter中运行它时,它就是这样做的。我该怎么办?

在代码中,使用
join()
中的
timeout
对线程进行时间约束。比如说

....
yourThread = threading.Thread()
yourThread.start()
yourThread.join(10.0)
....

多线程检查说明。希望对您有所帮助。

这个线程类有一个名为CloseThread(self)的方法,它是整个库中唯一调用join()的地方。正如之前编写的一样,它没有设置明确的超时时间,但在其中设置一个超时时间并没有帮助。我是否应该在其他地方调用join()-方法,比如在_uinit___u;(self)-方法中?不,应该在start()之后调用join()。是否确定已调用CloseThread(self)中的join()?尝试添加调试信息以进行确认。当我在线程的开头添加一个join()时,它就起作用了。有没有理由不给join()函数一个非常小的时间参数?(在任何情况下)我设置的时间越短,我的程序似乎工作得越好。当调用yourthread.join()时,它将等待线程终止。如果timeout参数不存在或不存在,则操作将阻塞,直到线程终止。在您的情况下,时间越短,工作越好,那么您应该为join()指定一个超时。顺便说一句,一个线程可以被连接()多次。如果这对您有帮助,请确认它作为一个答案。