我正在尝试为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
成为真。我对此完全感到困惑,无法找到任何帮助。提前谢谢!