作者icecicada (...)
看板MacDev
标题Re: [问题] 请问Cocoa程式要如何一直做同件事情?
时间Sun May 11 22:11:10 2008
※ 引述《Dannier (猫尾巴~)》之铭言:
: 不好意思小弟不才
: 研究了一下了解了一些NSRunLoop
: 可是还是有问题
: 我想要按一个扭开始一直做某件事情
: 按另一个则停止
: 但我还是不知道要怎麽让它停止NSRunLoop
: 实在想不出办法来
: 想要请教高手指点....感激不尽(躬)
当AP被执行後,AP会自动执行一个NSRunLoop
这个RunLoop是不可以被停止的...
依照你的Code来看,你只是增加了一个Timer,然後把它加入了RunLoop中...
RunLoop依照你的Timer设定值及Mode,决定何时呼叫你注册的Function。
要停掉Timer,参见NSTimer的文件,- (void)invalidate就是拿来停掉Timer的..
至於要不要新增一个Thread,要看你想要做的事来判断...
如果只是定期执行,而且动作不是很复杂,可以用NSTimer解决,
不需要新增一个thread
如果是一直在执行,或是执行需要花费较长的时间,还是使用Theard会比较好...
因为一个thread再一个时间点只能做一件事...
如果所需要执行的时间过久,那在这个时间点UI就会被Lock,无法接受其它动作...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 117.81.128.202