@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

1. NSTimer,可以设置一段时间执行一次,不会卡住线程

//NSTimer不准确,CADisplayLink准确

self.timer = [NSTimer scheduledTimerWithTimeInterval:3.0target:self selector:@selector(roll) userInfo:nil repeats:NO];

//NSDefaultRunLoopMode 一旦有滚动事件,默认模式暂时不监听

//NSRunLoopCommonModes 滚动模式时监听

self.timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(roll) userInfo:nil repeats:YES];

[[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];

//结束方法

[self.timer invalidate];

2.GCD的方法,可以选择在子线程远行

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

[self roll];

});

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

[self roll];

});

3.延时执行,不会卡住线程

[self performSelector:@selector(roll) withObject:nil afterDelay:3.0];

4.会卡住线程,不推荐使用

[NSThread sleepForTimeInterval:3.0];

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

04-18 13:40