0

私は Twisted ソケットに取り組んでいますが、ソケットの使用中に time.sleep を使用すると、システムがハングし、ソケットが停止するという話を聞いたことがあります。time.sleep なしでカウントダウンを行う方法はありますか?

ありがとう。

4

1 に答える 1

0

Twistedにはいくつかのオプションがあります。簡単な関数を使用して条件を確認できます。

from twisted.internet import reactor
expire = 10
def tick():
    expire -= 1
    if expire == 0:
        reactor.stop()
        return
    reactor.callLater(1, tick)

reactor.callLater(0, tick)
reactor.run()

また、twisted.internet.task.LoopingCallhttp://twistedmatrix.com/documents/current/api/twisted.internet.task.LoopingCall.htmlもあります

from twisted.internet.task import LoopingCall

def tick():
    if expired = 0:
        reactor.stop()
        return
    do_something()

task = LoopingCall(tick)
task.start()
reactor.run()

ツイストアプリケーション(twistd)またはその他のマルチサービスを使用している場合は、twisted.application.internet.TimerServicehttp://twistedmatrix.com/documents/current/api/twisted.application.internet.TimerService.htmlもあります

于 2012-06-06T01:34:53.227 に答える