grand-central-dispatch

    73热度

    1回答

    通常情况下,如果你生成一个后台线程或运行在一个NSOperationQueue的的NSOperation你需要为线程或操作创建一个NSAutoreleasePool因为没有缺省存在。 做同样的规则适用于放置在大中央调度队列中,将在非主线程运行块?也就是说,是否需要在每个块中创建一个NSAutoreleasePool,然后将其分派给主队列以外的任何其他块? 在我有限的测试中,我没有看到控制台警告,自

    0热度

    2回答

    数组中的URL被一个接一个地调用。是不是应该一次性调用,比如nsoperationqueue?请帮助我,谢谢 - (void) allTasksDone { NSLog(@"DONE"); } - (void) callMultiple { dispatch_queue_t myQueue = dispatch_queue_create("com.myco

    3热度

    3回答

    我想在不同的块传入一个方法。该方法随后将使用传入的块作为dispatch_async的参数。 我宣布我的块这样的: typedef int (^ComputationBlock)(int); 接受块类方法是这样实现的: - (void)doSomething:(int)limit withBlock:(ComputationBlock)block; { dispatch_queue_t

    0热度

    1回答

    我需要用户点击一个按钮后运行一个复杂的(即长)的任务。 按钮将打开一个板和长时间运行的操作是用dispatch_async等大中央调度的东西开始。 我写的代码,它工作正常,但我需要帮助理解如果我正确,或者如果我忽略所做的一切(由于我的无知)任何潜在的问题。 用户点击该按钮并打开片,所述块包含长任务(在此实例中它只能运行一个为(;;)环 该块还包含逻辑任务完成时,关闭片。 -(IBAction)op

    1热度

    2回答

    我想返回一个数组,其内容在dispatch_sync块中设置。 我通常看到的代码是这样的: -(NSArray *)getSomeLockedList { __block NSArray *resultList; dispatch_sync(myQueue, ^{ // copy contents of my ivar NSMutableArray into r

    3热度

    2回答

    由于NSOperationQueue类参考说: 在iOS中,操作队列不使用Grand Central Dispatch来执行操作。他们为非并发操作创建单独的线程,并从当前线程启动并发操作。 但我发现在iOS 4.2.1中,队列总是为并发或非并发操作创建线程。我认为队列根本不关心并发或不并发,因为isConcurrent中的断点永远不会被破坏。所以我认为参考是错误的...

    1热度

    1回答

    我正在使用Grand Central Dispatch将一个块添加到队列(而不是主队列)。该块有一个循环,并且在循环的每个通道之间需要0.02秒的小延迟。我正在使用 dispatch_async(myOwnQueue, ^{ // begin loop // do stuff usleep(20000); // end loop }); 在此队列上。因

    22热度

    3回答

    我在我的应用程序中使用Grand Central Dispatch(GCD)来完成一些繁重工作。该应用程序正在使用Core-Data进行数据存储。这里是我的方案(连同相关的问题): dispatch_queue_t main_queue = dispatch_get_main_queue(); dispatch_queue_t request_queue = dispatch_queue_cre

    3热度

    2回答

    从背景中运行的方法调用performSelectorInBackground:...的真正效果是什么?我希望它异步运行 例如: - (void) _imageBufferWasUpdated{ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //do something here if(sho

    1热度

    1回答

    一个苹果公司的网站上读取数据,还有的建议图案使用GCD队列,而不是锁: // Create queue early queue = dispatch_queue_create("com.example.tweets", NULL); // executed main thread - (NSArray *)getTweets { __block NSArray *a;