- 论坛徽章:
- 0
|
感觉是...,可是我在执行定时器的过程中sleep一段时间后,在调用Timer.cancel()貌似可以,不知道又是怎么回事。如果用执行代码替换sleep语句,比如ftp长连接过程中是否可以。
from threading import Timer
from time import ctime, sleep
class foo:
def __init__(self):
pass
def disconnect(self):
self.timer.cancel()
print('dead...')
def keepAlive(self):
print(ctime(), 'aliving...')
self.timer = Timer(1, self.keepAlive)
self.timer.start()
f = foo()
f.keepAlive()
sleep(9)
f.disconnect()
执行结果:
>>>
('Sun Nov 22 12:51:50 2009', 'aliving...')
('Sun Nov 22 12:51:51 2009', 'aliving...')
('Sun Nov 22 12:51:52 2009', 'aliving...')
('Sun Nov 22 12:51:53 2009', 'aliving...')
('Sun Nov 22 12:51:55 2009', 'aliving...')
('Sun Nov 22 12:51:56 2009', 'aliving...')
('Sun Nov 22 12:51:57 2009', 'aliving...')
('Sun Nov 22 12:51:58 2009', 'aliving...')
('Sun Nov 22 12:51:59 2009', 'aliving...')
dead...
>>> |
|