Re: [問題] 請問Cocoa程式要如何一直做同件事情?
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 7 篇):