参考这个soquestion,我需要运行一个Cmd控制台应用程序,该应用程序将使用Python的Twisted框架进行网络查询,下面是一个示例:
from cmd import Cmd
from twisted.internet import reactor
class CommandProcessor(Cmd):
def do_quit(self, line):
print 'bye bye !'
return True
def do_hello(self, line):
print 'world'
if __name__ == "__main__":
reactor.callInThread(CommandProcessor().cmdloop)
reactor.run()
一切都很好,但是当执行quit命令时,控制台会挂起,直到我点击Ctrl+c,如果在执行quit之前按Ctrl+c,控制台也会挂起,直到我执行quit命令。在
当我退出CommandProcessor().cmdloop时,似乎反应器仍在工作,如果是问题,我需要在线程结束时停止reactor。在
调用^{} 终止twisted事件循环。} 调用
CommandProcess.do_quit
在单独的线程中运行;reactor.stop
应使用^{在
do_quit
方法中添加reactor.callFromThread(reactor.stop)
。在相关问题 更多 >
编程相关推荐