我想用NSTimer
以每頁20秒跑完一個功能,但我把NSTimer
在NSThread
function.the代碼是這樣的:NSTimer無法在NSThread函數中啓動或運行?
-(void)func1
{
[NSThread detachNewThreadSelector:@selector(func2)
toTarget:self withObject:nil];
}
-(void)func2
{
[NSTimer scheduledTimerWithTimeInterval:3 target:self
selector:@selector(func3) userInfo:nil repeats:YES];
}
-(void)func3
{
//do something,but the function seems never be executed
}
所以問題是,FUNC3從未被執行NSTimer
in func2.有人說NSTimer
只能運行在main thread
。這是真的嗎??所以不能在NSTimer
啓動一個NSThread
函數?
@Thomasso你的意思是NSTimer可以在NSThread中設置和運行,不僅在主線程中? – SgViTiNer 2013-03-12 02:57:44
如果您有長時間運行的線程,那麼您可以在其上設置一個定時器。長時間運行的線程就像是一個網絡線程,它正在後臺下載數據或從相機或麥克風輸入線程處理。 – 2013-03-12 03:09:47
它甚至沒有去睡覺;線程體是'func2'方法,它調度定時器,然後立即返回,線程退出。 – 2013-03-12 07:40:45