草庐IT

dispatch_group_async

全部标签

ios - 使用 dispatch_after 作为 NSTimer 的替代方案来进行定期调度的操作

对于应该在后台线程上发生的周期性操作,我通常会使用NSTimer。我想知道将gcd用于相同目的是否有任何缺点://Setupadispatchqueueownedbyaninstanceoftheclass.(ieininit).dispatch_queue_tbackgroundQueue=dispatch_queue_create("some.queue",DISPATCH_QUEUE_SERIAL);-(void)scheduleRefresh{__weakidweakSelf=self;dispatch_after(dispatch_time(DISPATCH_TIME_NOW

ios - Autoreleasepool 和 dispatch_async

看了GCD的文章,有个例子:dispatch_queue_tbgQueue=myQueue;dispatch_async(dispatch_get_main_queue(),^{NSString*stringValue=[[[textFieldstringValue]copy]autorelease];dispatch_async(bgQueue,^{//usestringValueinthebackgroundnow});});如果我将该方法放在点击处理程序中(将在autoreleasepool中调用),我是否会丢失stringValue,因为autoreleasepool将在点击事

ios - 如何重复循环 dispatch_after 语句?

我想要一个包含dispatch_after语句的for循环。问题是dispatch_after调用似乎与for循环不一致。换句话说,我希望它仅在dispatch_afterblock中的语句执行后才开始for循环的下一次迭代。我该怎么做?用例我想在屏幕上显示文字。传统上我每秒显示一个单词。但是根据单词的长度,我现在想用更长的时间显示更长的单词,用更少的时间显示更短的单词。我想呈现一个词,稍等片刻(取决于词的长度)然后呈现下一个词,稍等片刻,然后是下一个,等等。 最佳答案 每秒打印一位数字0、1、2、3、4、5、6、7、8、9。dis

ios - 如何在异步 block 内为 dispatch_group_async dispatch_group_wait

我的代码看起来像这样:[SVProgressHUDshow];[imageGeneratorgenerateCGImagesAsynchronouslyForTimes:timescompletionHandler:^(CMTimerequestedTime,...){dispatch_group_async(queueGroup,queue,^{//Dostuff});}];dispatch_group_wait(queueGroup,DISPATCH_TIME_FOREVER);[SVProgressHUDdismiss];基本上,显示加载动画HUD并开始从Assets生成图像缩略

objective-c - 使用 dispatch_get_main_queue() 运行 block 不起作用并挂起应用程序

如果使用函数运行同步块(synchronizedblock):dispatch_sync使用从dispatch_get_main_queue()检索到的队列应用程序挂起并且不执行该block,而如果我通过从以下位置获得的队列:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)它可以正常工作。dispatch_queue_tq;q=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);//q=dispatch_get_main_queue();//If

ios - 分派(dispatch)异步代码错误 - Objective C

我是ObjectiveC的新手,但已经在Swift上工作了一段时间。我假设Objectivec在逻辑上与swift相似。在处理json数据请求时,我必须提供一个警报Controller;所以我不得不使用dispatchasync让它快速工作。这是我在Swift中使用的代码:funcalertMessage(message:String)->Void{letalert=UIAlertController(title:"Alert",message:message,preferredStyle:.Alert)letokAction=UIAlertAction(title:"OK",styl

ios - Grand Central Dispatch 和并发任务

我需要执行三个彼此独立的任务,因此我想同时执行它们。但我需要他们都完成通知另一个对象。AFAIK,*dispatch_apply*创建并发线程,但它迭代一个集合或一个对象数组并执行相同的任务多次循环,我想为每个线程执行不同的任务。是否可以使用GCD做我想做的事?如果不是,最好的方法是什么?谢谢! 最佳答案 使用dispatch_group。ConcurrencyProgrammingGuide举个例子,有moreAPI这也可能对您有所帮助。使用dispatch_group_create创建调度组。使用dispatch_group_a

ios - dispatch_semaphore_wait 不等待信号量

我开发了以下方法,用于检查应用程序与服务器通信的能力。该方法执行一个简单的查询,并且知道如果得到结果,应用程序应该已连接(基本的ping机制)。-(BOOL)isAppConnected{__blockBOOLisConnected=NO;dispatch_semaphore_tsemaphore=dispatch_semaphore_create(0);[[SFRestAPIsharedInstance]performSOQLQuery:@"SELECTidFROMAccountLIMIT1"failBlock:^(NSError*e){isConnected=NO;NSLog(@"

Flutter/Dart第04天:Dart异步编程(Future和async/await)

Dart官网代码实验室:https://dart.dev/codelabs/async-await重要说明:本博客基于Dart官网代码实验室,但并不是简单的对官网文章进行翻译,我会根据个人研发经验,在覆盖官网文章核心内容情况下,加入自己的一些扩展问题和问题演示和总结,包括名称解释、使用场景说明、代码样例覆盖、最后完整的场景编程等。启蒙:错误的异步编程样例下面是一个错误的异步编程样例,大概过程:通过模拟网络API获取订单ID,然后组织订单ID文案,最终输出问题。我们期望最终输出的是正确的订单ID文案,可结果并不符合我们的期望:订单ID并不是T2023092900001,而是Instanceof'

ios - 代码/iOS : How to enable App Groups without Developer Account?

我想创建一个需要应用组功能的iOS扩展。根据列表SupportedCapablilities无需开发者帐户即可使用应用组。根据该文档,应该可以使用AppleID帐户。当我尝试为我的应用程序启用应用程序组时,它无法:Addthe"AppGroupscontainers"entitlementstoyourAppIDCommunicationwithApplefailed问题有答案Xcode:EnableAppGroupswithoutdeveloperaccount?其中声明需要开发者帐户,这与官方文档相矛盾。问题XCodeshowswarningafteraddingAppGroups