我必須執行一個使用NSThread的計時器,因爲我需要從網絡下載文本數據,如果沒有這一點,在3G連接下載時會凍結UI。所以我用了一個NSThread,但它仍然凍結了一段時間,我不知道如何解決這個....即使使用nsthread接口凍結
這裏是我用來執行定時器代碼:
- (void)viewDidLoad{
[NSThread detachNewThreadSelector:@selector(onTimerK2) toTarget:self withObject:nil];
}
- (void)onTimerK2{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
timer = [NSTimer scheduledTimerWithTimeInterval:15 target:self selector:@selector(onTimerKY2) userInfo:nil repeats:YES];
[pool release];
}
- (void)onTimerKY2{
NSLog(@"working");
}
好的,你是,所以我修改了代碼,但是然後定時器不再工作。請參閱第一篇文章,並感謝您的回答 – 2010-12-13 16:01:15
如果您想從輔助線程啓動計時器,則需要配置運行循環。 – taskinoor 2010-12-13 16:11:50
實際上它不會在主線程中調用方法。計時器將被安排在新線程的運行循環中 - 該服務沒有被服務,所以定時器不會被觸發。 – JeremyP 2010-12-13 16:42:01