// 子线程-串行 [self performSelector:@selector(showCount:) withObject:@(11)]; [self performSelector:@selector(showCount:) withObject:@(12)]; [self performSelector:@selector(showCount:) withObject:@(23)];
// 子线程-并行(后台) [self performSelectorInBackground:@selector(showCount:) withObject:@(41)]; [self performSelectorInBackground:@selector(showCount:) withObject:@(42)];
// 回到主线程 [self performSelectorOnMainThread:@selector(showCount:) withObject:@(51) waitUntilDone:YES];
// 子线程延迟执行 [self performSelector:@selector(showCount:) withObject:@(61) afterDelay:5.0];
// 停止 [NSObject cancelPreviousPerformRequestsWithTarget:self];
- (instancetype)initWithTarget:(id)target selector:(SEL)selector object:(nullable id)argument;
self.thread = [[NSThread alloc] initWithTarget:self selector:@selector(showCount:) object:@(61)]; self.thread.name = @"计数"; [self.thread start]; [self.thread cancel];
- (void)showCount:(NSNumber *)number
{
NSInteger count = arc4random() % 1000;
count = 1000;
for (int i = 0; i < count; i++)
{
NSLog(@"第 %@ 个 i = %@", number, @(i));
// 休眠n秒再执行
[NSThread sleepForTimeInterval:0.2];
// 停止
// BOOL isStop = [self.thread isCancelled];
// if (isStop)
// {
// NSLog(@"2 停止");
// break;
// }
if (isCancelThread)
{
NSLog(@"2 停止");
break;
}
}
}
bool isCancelThread = NO;
- (void)stopClick
{
[NSObject cancelPreviousPerformRequestsWithTarget:self];
if (self.thread)
{
BOOL isExecuting = [self.thread isExecuting];
if (isExecuting)
{
NSLog(@"1 停止");
// [self.thread cancel];
isCancelThread = YES;
}
}
}
- (void)downloadImage:(NSString *)imageUrl
{
NSURL *url = [NSURL URLWithString:imageUrl];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
UIImage *image = [[UIImage alloc] initWithData:data];
if (image == nil)
{
}
else
{
// [self performSelectorOnMainThread:@selector(updateImage:) withObject:image waitUntilDone:YES];
[self performSelectorInBackground:@selector(updateImage:) withObject:image];
}
// NSURL *url = [NSURL URLWithString:imageUrl];
// NSURLRequest *request = [NSURLRequest requestWithURL:url];
// NSURLSession *session = [NSURLSession sharedSession];
// NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler: ^(NSData *data, NSURLResponse *response, NSError *error) {
//
// // 输出返回的状态码,请求成功的话为200
// NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
// NSInteger responseStatusCode = [httpResponse statusCode];
// NSLog(@"%ld", responseStatusCode);
//
// UIImage *image = [UIImage imageWithData:data];
//// [self performSelectorOnMainThread:@selector(updateImage:) withObject:image waitUntilDone:YES];
// [self performSelectorInBackground:@selector(updateImage:) withObject:image];
// }];
//
// // 使用resume方法启动任务
// [dataTask resume];
}
- (void)updateImage:(UIImage *)image
{
self.imageview.image = image;
// self.imageview = [[UIImageView alloc] initWithFrame:CGRectMake(10.0, 10.0, (CGRectGetWidth(self.view.bounds) - 10.0 * 2), (CGRectGetWidth(self.view.bounds) - 10.0 * 2))];
// [self.view addSubview:self.imageview];
// self.imageview.backgroundColor = [UIColor colorWithWhite:0.5 alpha:0.2];
//
// self.imageview.image = image;
}
NSString *imageUrl = @"http://ww1.sinaimg.cn/crop.0.0.1242.1242.1024/763fb12bjw8empveq3eq8j20yi0yiwhw.jpg"; // 隐藏创建 // [self performSelectorInBackground:@selector(downloadImage:) withObject:imageUrl]; [self performSelectorOnMainThread:@selector(downloadImage:) withObject:imageUrl waitUntilDone:YES]; // 创建子线程-显示方法 self.thread = [[NSThread alloc] initWithTarget:self selector:@selector(downloadImage:) object:imageUrl]; self.thread.name = @"imageDownload"; [self.thread start];
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有