草庐IT

grand-central-dispatch

全部标签

ios - Dispatch Instrument 不支持 iPhone5

当我尝试使用调度工具分析我的应用程序时,它说“此设备不支持此工具(调度)”。这意味着,基于设备或操作系统版本支持此功能?提前致谢。 最佳答案 基于Apple的文档,它仅适用于OSX。https://developer.apple.com/library/mac/documentation/AnalysisTools/Reference/Instruments_User_Reference/DispatchInstrument/DispatchInstrument.html 关于ios-D

ios - dispatch_once 对简单的 NSArray 有帮助吗?

dispatch_once+(NSArray*)titles{staticNSArray*_titles;staticdispatch_once_tonceToken;dispatch_once(&onceToken,^{_titles=@[@"YourMove",@"TheirMove",@"WonGames",@"LostGames",@"Options"];});return_titles;}简单+(NSArray*)titles{return@[@"YourMove",@"TheirMove",@"WonGames",@"LostGames",@"Options"];}哪个最快

iOS 在 dispatch_async 中更新 RLMObject

我想在dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)中更新RLMObject并在dispatch_get_main_queue()中获取结果,但是在其他线程中更新的对象不会在主ui线程中更新。什么是解决方案?示例代码是:结果是:Ageofdogs1:9Ageofdogs2:9但应该是:Ageofdogs1:9Ageofdogs2:11//CreateastandaloneobjectDog*mydog=[[Dogalloc]init];//Set&readpropertiesmydog.name=@"Rex2";

iOS dispatch_get_global_queue 嵌套在 dispatch_get_main_queue 中

我继承了一个使用以下线程结构的代码库:dispatch_async(dispatch_get_main_queue(),{()->Voidindispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0),{()->Voidin//SeveralAFNetworkingServercalls...})})我对线程不是很有经验,所以我想弄清楚这个结构背后的可能意图是什么。为什么只抢到主队列就马上访问另一个队列?这是一种常见的做法吗?对于更多的上下文,此代码在UIApplicationDidBecomeAct

ios - 如何从线程更新 UI

我的程序“ThreadsNQueues”——见下文——在后台线程上同时用“A”和“B”填充文本行。当一个文本行已填充10个字符时,它将被附加到输出文本缓冲区(它是一个NSMutableString)并且这个缓冲区应该被写出到一个UITextView(self.outView)。问题:self.outView.text=_output;行永远不会被执行(在模拟器iOS9.2上测试):-(对不起,我对iOS上的多线程完全陌生...所以我的问题是:这段代码有什么问题,我怎样才能让它变得更好(需要GCD)?#import"ViewController.h"@interfaceViewContr

ios - dispatch_group_t 或 dispatch_semaphore_t 等待多个异步请求完成

我需要等待几个请求完成才能继续下一个任务。dispatch_group_t&dispatch_semaphore_t在这里很像。所以我想知道哪个更好,或者这里没有太大区别。dispatch_group_tserviceGroup=dispatch_group_create();dispatch_group_enter(serviceGroup);//incompletionblockdispatch_group_leave(serviceGroup);//waitforallrequeststocompletedispatch_group_notify(serviceGroup,dis

ios - 设置 CoreData NSManagedObjectContext 线程优先级

至少自iOS9以来,核心数据操作唯一未弃用的线程并发类型(不在主线程中运行)是NSPrivateQueueConcurrencyType。我现在的问题是,我想为此更改线程优先级,如下所示:...:(int)neededPriority{_queue=dispatch_queue_create("Worker",DISPATCH_QUEUE_SERIAL);dispatch_set_target_queue(_queue,dispatch_get_global_queue(neededPriority,0));有时我需要高优先级,有时低。但是当我调用[_privateContextper

ios - 为什么我们需要在另一个队列上使用 dispatch_sync() 而不是在 iOS GCD 中使用当前队列/线程

我读到dispatch_sync()会阻塞当前线程并且不会返回它,直到一个人想要同步执行的任务在dispatch_sync的串行队列上完成()需要继续努力。所以基本上它会停止当前线程并执行它的任务。如果是这样,为什么还要为这种任务设置另一个队列,为什么我们不能将任务放在当前线程上。毕竟,执行任务无论如何都会阻塞当前线程。既然dispatch_sync()不会打开另一个线程,那么为什么我们还要打开另一个队列来执行任务而不是在当前队列/线程上执行呢?希望我在这里清楚地描述我的困惑。我在这里比较在另一个队列上使用dispatch_sync()和直接使用当前线程/队列,所以我想知道在什么用例中

ios - 暂停串行队列

今天我尝试了以下代码:-(void)suspendTest{dispatch_queue_attr_tattr=dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_CONCURRENT,QOS_CLASS_BACKGROUND,0);dispatch_queue_tsuspendableQueue=dispatch_queue_create("test",attr);for(inti=0;i代码启动了10001个任务,但它应该暂停队列中途运行新任务以在6秒内恢复。这段代码按预期工作-执行了5000个任务,然后队列停止,并在6秒后

ios - 妥善管理 dispatch queue 减少 iOS 手机发热

CUSTOM_VIEW类:我制作了custom_view类,它计算自身的值并每1秒向用户显示一次。根据存储在custom_view实例中的属性/变量计算custom_view中的值。VIEWCONTROLLER类:我通过在VIEWCONTROLLER类中创建custom_class的实例来显示大约7到9个View。由于我的custom_class每1秒显示一次新的计算值,我使用dispatch_async来执行计算代码。这样它就不会影响UI线程。custom_view.mstaticdispatch_queue_tqueue;queue=dispatch_get_global_queu