如何在ios中停止调度队列?

如何在ios中停止调度队列?,ios,grand-central-dispatch,dispatch,Ios,Grand Central Dispatch,Dispatch,我想知道当我点击导航栏上的后退按钮时停止异步任务的方法。我已经完成了这段代码,但它不起作用。。。 dispatch_group_t imageQueue=dispatch_group_create() 即使我挂起线程,它也不会停止执行,它会在后台运行。任何人请帮助我不,你不能这样做。请改用NSTimer。调度队列不支持取消。但是,您可以使用块变量或某些全局变量来跟踪调度队列代码中的可取消项。调度队列中的代码必须能够在cancel=YES(例如)时停止工作。Grand Central调度适用于火灾

我想知道当我点击导航栏上的后退按钮时停止异步任务的方法。我已经完成了这段代码,但它不起作用。。。 dispatch_group_t imageQueue=dispatch_group_create()


即使我挂起线程,它也不会停止执行,它会在后台运行。任何人请帮助我

不,你不能这样做。请改用NSTimer。

调度队列不支持取消。但是,您可以使用块变量或某些全局变量来跟踪调度队列代码中的可取消项。调度队列中的代码必须能够在cancel=YES(例如)时停止工作。

Grand Central调度适用于火灾和遗忘任务。如果您想要取消任务,我建议您使用
NSOperation
,或者
NSOperationQueue

还有诸如dispatch\u suspend()(以及dispatch\u resume())之类的工具。这将防止调度特定队列上的任何新块。它不会对已经运行的块产生任何影响。如果要暂停已计划并正在运行的块,则由代码检查某些条件并暂停。要挂起队列/取消操作,应使用NSOperation和NSOperationQueue而不是GCD。

查看此链接。可能会有帮助:另外,不要尝试释放默认通知中心。还有一个疑问..我正在使用SBJson解析器,bcz,因为我无法解析换行符和回车字符..对于解析,我删除了这些字符,,但在UI中,如何显示我使用SBJson解析的带有换行符的语句..记住:NSOperations只是一个构建在Grand Central Dispatch之上的API。所以,当您使用NSOperations时,您仍然使用Grand Central Dispatch。只是NSOperations为您提供了一些可能使用的附加功能。您可以使某些操作依赖于其他操作,在sumbit项后重新排序队列,重用操作,取消或挂起它们,在各种操作之间添加依赖关系。
dispatch_group_async(imageQueue, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
                     ^{
                         imagedata=[[NSMutableArray alloc]init];

                         for (int i=0; i<[imageURL count]; i++)
                         {
                             NSLog(@"clicked ");

                           [imagedata addObject:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[imageURL objectAtIndex:i]]]]];

 [[NSNotificationCenter defaultCenter] postNotificationName:@"Avatardownloaded" object:imagedata   userInfo:nil];
                             }




                     });
-(void)viewDidDisappear:(BOOL)animated
{
    dispatch_suspend(imageQueue);

    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"Avatardownloaded" object:nil];
    [[NSNotificationCenter defaultCenter]release];
    [avatarimages release];
    [imagedata release];
    [imageURL release];   
}