- 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 |
// |
20 |
//保持线程为活动状态,才能保证定时器执行
|
21 |
// |
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 |
} |