Reference: https://my.oschina.net/u/936286/blog/159490
-(BOOL) Application: (UIApplication *) application didfinishlaunchingwithoptions: (Nsdictionary *) launchOptions {
Self.window = [[[UIWindow alloc] initwithframe:[[uiscreen mainscreen] bounds]] autorelease];
Create a multithreaded [self performselectorinbackground: @selector (multithread) Withobject:nil] in a nsobject way;
Self.window.backgroundColor = [Uicolor Whitecolor];
[Self.window makekeyandvisible];
return YES;
}-(void) multithread {NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; if (![ Nsthread Ismainthread]) {//1th way//The timer created by this method has been added to the runloop//[Nstimer Scheduledtimerwithtimei
nterval:1.0f target:self selector: @selector (timeraction) Userinfo:nil Repeats:yes]; Keep the thread active in order to ensure that the timer executes//[[Nsrunloop Currentrunloop] run];//has added nstimer to the Nsrunloop//2nd Way//This kind of side Timer was not added to runloop nstimer *timer = [Nstimer timerwithtimeinterval:1.0f target:self selector: @selector (timeract ION) Userinfo:nil RepEats:yes];
Add the timer to the Runloop [[Nsrunloop Currentrunloop] Addtimer:timer Formode:nsdefaultrunloopmode];
[[Nsrunloop Currentrunloop] run];
NSLog (@ "multithreading end");
} [pool release]; }-(void) Timeraction {//timer is also executed in a child thread if (![
Nsthread Ismainthread]) {NSLog (@ "timer"); }
}