我在Windows上使用Python 2.7.3。
好。现在,认为有一个python程序。例如,我们将其命名为“program.py”,它是program.py的内容:
import program2
class program(object):
def __init__(self):
...
... the jobs which program will do ...
...
def function(self): #we call it from __init__ function when it's time came
program2.start()
if __name__ == "__main__":
p = program()
在program.py的同一文件夹中有一个文件,名为program2.py。让我们为program2.py提供一个内容:
def start():
....
.... the jobs which program2.py will do ... # In this function we do jobs with while loops, threads etc.
....
def stop():
...
... program2.py closes itself here ...
...
认为我运行了program.py。过了一会儿我想关闭program.py并按Ctrl + C.但是program2.py中的线程仍在运行。我想要一个像program2.py这样的东西运行stop()函数并关闭它自己。所以,程序将关闭其所有连接(如program2.py)。我该怎么办?
我搜索了信号模块,但我没有在Linux上工作。我在Windows上工作,我不能使用很多信号模块的功能。我通过创建一个名为'stop.txt'的文件来成功。我的意思是当program.py采用Ctrl + C命令时,它会创建一个文件'stop.txt',program2.py控制该文件夹中是否有一个名为stop.txt的文件。当program.py创建文件时,program2.py会看到它并自行关闭。但我认为这种方法很原始。有更隐秘的方法吗?
感谢。