Я работаю над прототипом игры, используя python twisted. Ссылаясь одну из книг, я в настоящее время использую следующий код для обновления игрыЗапрос относительно реактора.doВыберите() и reactor.runUntilCurrent
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“не имеет атрибута„doSelect“». Я использую скрученный 16.1.1, и следующие вопросы:
1) Я не нашел runUntilCurrent и doSelect методы в документации, приведенной в twistedmatrix, эти методы недоступны?
2) Является ли реактор.iterate() заменой doSelect()? 3) Из более ранних сообщений я обнаружил, что реактор.iterate() может сделать приложение медленным и ошибочным. Каков наилучший способ справиться с ситуациями, когда требуется обновление UI фактов?