#import "ViewController.h"
@interface ViewController ()
/**
* 常驻线程
*/
@property(strong,nonatomic) NSThread * myThread;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self creatMyThread];
}
#pragma mark - System Method
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
[self performSelector:@selector(runTwo) onThread:self.myThread withObject:nil waitUntilDone:NO];
}
- (void)runTwo
{
NSLog(@"Run_Two");
NSLog(@"常驻线程任务执行中");
}
#pragma mark - Private Method
/**
* 创建并且开启常驻线程
*/
- (void)creatMyThread
{
self.myThread = [[NSThread alloc]initWithTarget:self selector:@selector(runOne) object:nil];
[self.myThread start];
}
- (void)runOne
{
// 获取RunLoop (获取时创建RunLoop)
[[NSRunLoop currentRunLoop] addPort:[NSPort port] forMode:NSDefaultRunLoopMode];
[[NSRunLoop currentRunLoop] run];
NSLog(@"RunLoop");
}
@end
常驻线程
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 假如,我们需要在一个子线程中执行多个任务,但是,多个任务又不是连续的。这时就需要我们在开启一条子线程后,一直保持线...