如果dispatch_async功能块需要很长时间才能完成,如何检查天气que1是否正在进行中。
-(void)downloadImageFromURL:(NSString*)_imageURl
{
dispatch_queue_t que1 = dispatch_queue_create("abcd", NULL)
dispatch_async(que1, ^{
@autoreleasepool {
NSData *imagedata=[NSData dataWithContentsOfURL:
[NSURL URLWithString:_imageURl]];
image = [UIImage imageWithData:imagedata];
if (image)
{
[imagedata writeToFile:imagePath atomically:YES];
}
}
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"DONE");
});
});
}
例如:如果我将两次使用相同的url调用 downloadImageFromURL:方法,它将执行两次...如何停止第二次执行.... plz help
答案 0 :(得分:0)
调度队列没有该功能。您可以将NSOperationQueue
与NSOperation
一起使用来执行后台任务。您可以使用cancel
方法取消活动请求,或cancelAllRequests
取消所有活动请求。互联网上有很多关于它们的教程。