4

我正在使用扭曲反应器来非阻塞读取套接字输入。但是,我想在反应器开始运行后运行另一个循环

.....
reactor.listenTCP(12345, MyFactory())
reactor.run()

# ... blah blah socket input related code
while 1:
    ...
    ...
    if something:
       reactor.stop()

问题是循环后reactor.run()不起作用while。我可以知道而不是在 main 中使用线程te = Thread(target=reactor.run, args=(False,)).start(),还有其他方法可以使reactor.run()工作非阻塞吗?

谢谢你。

4

1 回答 1

5

reactor.run()是阻塞调用。你需要做一些事情,比如在一个单独的线程中运行你的循环。按照您的方式,您的循环将运行,但前提是您设法通过某些外部事件或信号停止反应器。那时,对的调用reactor.run()将返回,您的代码的其余部分将执行。

我实际上正在寻找reactor.run()一种自己以非阻塞方式调用的方法。如果有人有办法做到这一点,我很想听听。

于 2014-11-08T17:32:40.337 回答