IOS在子线程中使用定时器,将定时器添加至RunLoop中
来源:互联网 发布:知乎和百度有什么区别 编辑:程序博客网 时间:2024/05/16 11:59
转:http://my.oschina.net/u/936286/blog/159490
- (
BOOL
)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
02
{
03
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
04
05
//用NSObject的方法创建一个多线程
06
[self performSelectorInBackground:@selector(multiThread) withObject:nil];
07
08
self.window.backgroundColor = [UIColor whiteColor];
09
[self.window makeKeyAndVisible];
10
return
YES;
11
}
12
- (
void
)multiThread
13
{
14
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
15
if
(![NSThread isMainThread]) {
16
17
// 第1种方式
18
//此种方式创建的timer已经添加至runloop中
19
// [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
20
//保持线程为活动状态,才能保证定时器执行
21
// [[NSRunLoop currentRunLoop] run];//已经将nstimer添加到NSRunloop中了
22
23
//第2种方式
24
//此种方式创建的timer没有添加至runloop中
25
NSTimer *timer = [NSTimer timerWithTimeInterval:1.0f target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
26
//将定时器添加到runloop中
27
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
28
[[NSRunLoop currentRunLoop] run];
29
NSLog(@
"多线程结束"
);
30
}
31
[pool release];
32
}
33
34
- (
void
)timerAction
35
{
36
//定时器也是在子线程中执行的
37
if
(![NSThread isMainThread]) {
38
NSLog(@
"定时器"
);
39
}
40
}
0 0
- IOS在子线程中使用定时器,将定时器添加至RunLoop中(转)
- IOS在子线程中使用定时器,将定时器添加至RunLoop中
- IOS在子线程中使用定时器,将定时器添加至RunLoop中
- IOS在子线程中使用定时器,将定时器添加至RunLoop中
- IOS在子线程中使用定时器,将定时器添加至RunLoop中
- 在子线程中使用定时器,将定时器添加到RunLoop中
- ios之在子线程中使用定时器
- iOS中定时器和RunLoop的设定
- iOS使用定时器,并添加到子线程运行
- 子线程中执行定时器
- 在线程中使用定时器的例子!
- 在线程中启动定时器~
- 线程中使用多媒体定时器
- iOS中定时器NSTimer使用
- iOS中定时器的使用
- iOS中定时器NSTimer使用
- iOS中定时器NSTimer使用
- iOS中定时器NSTimer使用
- RBF SVM中的gamma和C参数
- 字符串匹配
- Java双向链表实现
- Zend Framework2 入门教程
- 二分幂、快速幂、矩阵快速幂、幂取模
- IOS在子线程中使用定时器,将定时器添加至RunLoop中
- swift uinavigationController 视图控制器切换(二)
- 手动刷微信运动步数
- swift UINavigationController属性设置
- 内联标签和块标签
- Fragment第二次执行数据为空
- Android开发之创建Fragment
- 以人为本 | 如何保证高质量的软件交付
- swift 设置 navigation左右两侧按钮