如何检查天气创建的自定义调度已在进行中

时间:2016-03-19 09:28:25

标签: ios

如果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

1 个答案:

答案 0 :(得分:0)

调度队列没有该功能。您可以将NSOperationQueueNSOperation一起使用来执行后台任务。您可以使用cancel方法取消活动请求,或cancelAllRequests取消所有活动请求。互联网上有很多关于它们的教程。