首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于reactor.doSelect()和reactor.runUntilCurrent的查询

关于reactor.doSelect()和reactor.runUntilCurrent的查询
EN

Stack Overflow用户
提问于 2016-09-05 08:28:09
回答 1查看 89关注 0票数 0

我正在开发一个使用python twisted的游戏原型。参考其中一本书,我目前正在使用以下代码来更新游戏

代码语言:javascript
复制
def iterate(self):
    now = time.time()
    interval = now - self.beginFrame
    self.beginFrame = now

    # update the network
    reactor.runUntilCurrent()        
    reactor.doSelect(0)

    # update the games
    for game in self.games:
        game.update(interval) 

然而,上面的代码在ubuntu机器上失败,并出现错误"AttributeError:'EPollReactor‘object has no attribute 'doSelect'“。我使用的是twisted 16.1.1,以下是我的问题

1)我在twistedmatrix中给出的文档中没有找到runUntilCurrent和doSelect方法,这些方法不再可用了吗?

2) reactor.iterate()会取代doSelect()吗? 3)在之前的帖子中,我发现reactor.iterate()可能会使应用程序变慢并出现错误。处理需要fact UI更新的情况的最佳方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2016-09-05 11:19:27

Twisted通常默认选择epoll反应器。selectreactor中提供了doSelect功能。要使用选择的反应器,请首先安装选择的反应器,然后导入twisted.internet.reactor

代码语言:javascript
复制
from twisted.internet import selectreactor
selectreactor.install()
from twisted.internet import reactor

Select应该可以在大多数相关的操作系统上运行,这可能是你的书使用它的原因。

1)我在twistedmatrix中给出的文档中没有找到runUntilCurrent和doSelect方法

你找得不够仔细,伙伴:下次我试着把所有的modules and class documents都找遍。

2)是reactor.iterate()doSelect()的替代。

他们似乎都做了类似的事情,但我认为他们并不打算成为替代品。希望Twisted核心开发人员能看到这个问题,如果我错了,可以纠正我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39322614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档