子流程没有结束

时间:2017-01-11 13:42:34

标签: python subprocess

我正在尝试为python游戏创建一个启动器,并且遇到了一个问题。当我的子流程中的代码结束时,主线程不会恢复。

这是调用子进程的线程

class ClientThread(threading.Thread):
    def __init__(self, port, host, name, colour):
        super(ClientThread, self).__init__()
        self.port = port
        self.host = host
        self.name = name
        self.colour = colour
        self.running = False
        self.toKill = False

    def run(self):
        self.running = True
        print("Started")
        args = self.host+" "+str(self.port)+" "+self.name.replace(" ", "_")+" "+str(self.colour[0])+" "+str(self.colour[1])+" "+str(self.colour[2])
        subprocess.call("C:\Python33\python.exe Client.py "+args)
        print("DONE CLIENT")
        self.toKill = True

这是子流程结束时的代码

print("NOTHING")
sock.close()
print("Socket")
try:
    gc.join(0.5)
    print("Threads")
except:
    print("ERROR")
pygame.quit()
print("Pygame")
exit(0)

这是控制台输出:

ESCAPE
Connected Status
NOTHING
Socket
Threads
Pygame

最后,它应该说"客户完成"当线程恢复时。当进程结束任何系统工作时,我只希望toKill成为真。我对此完全感到困惑,无法找到任何帮助。提前谢谢!

0 个答案:

没有答案