grand-central-dispatch相关内容
我有一个必须每半秒执行一次的代码,并且我正在使用Xcode游乐场.我使用了最佳答案,并得到了类似的代码这个: 用于array.enumerated()中的(索引,项目){DispatchQueue.main.asyncAfter(最后期限:.now()+ .seconds(索引),执行:{打印("\(索引)-\(df.string(from:Date()))"//每秒播放声音})} 此代码每
..
由于writeData调用是同步的,所以当我们从主队列以外的其他线程调用writeData时,使用它的最佳方法是什么? 例如,调用Web服务以获取一些数据,并将完成处理程序分配给Web服务调用.现在,此完成处理程序将在其他线程上执行(不在主队列上执行). 我已经看到我的应用在writeData方法上卡住了5至6分钟.这是我现在唯一可以怀疑的东西. 我尝试用dispatch_asy
..
我正在尝试使调度组在我的代码中工作 let dispatchQueue:DispatchQueue = DispatchQueue(label: "com.dispatchgroup", attributes: .concurrent, target: .main) var dispatchGroup:DispatchGroup = DispatchGroup() func renewLog
..
我已经在在Swift中询问了如何停止所有过程,直到在UICOLLECTIONVIEW中从parse.com检索到数据为止..在执行下一个功能之前,我无法从parse.com检索数据.我不知道如何访问异步线程.我已声明主队列为"first_fun()",因此应首先运行.同样,它先运行,但最后运行.在此之前,将执行下一个函数("second_fun()").如何排队该功能块?如何先完成异步线程?请检查
..
我有三个异步呼叫.一个返回数据,两个返回使用Firebase从S3返回的图像.我有一个后台DispatchQueue和三个调度组.我需要一种让他们同步执行的方法,但是他们不需要!我已经尝试了一切,然后.notify立即执行,这是错误的. 此的输出是: 图像已完成 一切都完成了 group.notify完成 getImages()已完成 我想了解的是为什么在group.notif
..
说在调用某些函数之前,我要完成3个不同的异步任务.我知道如果这些任务处于循环状态,可以使用调度组来执行此类操作, var dispatchGroup = DispatchGroup() for task in tasks { dispatchGroup.enter() DoSomeTask { (error, ref) -> Void in
..
我正在尝试构建启动画面,因此我希望第一视图控制器在3.0秒后自动移至第二ViwController,我尝试了以下方法,但无限循环已开始,我该怎么办,我该如何停下来查看控制器. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typical
..
我在左菜单中使用 RNFrostedSidebar .在关闭边栏时,下面的代码块正在执行 - (void)handleTap:(UIPanGestureRecognizer *)recognizer { [self dismissAnimated:YES completion:nil]; } - (void)dismissAnimated:(BOOL)animated comple
..
我有以下快速代码,可将用户联系人映射到Web服务器,然后在表格视图中显示: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)) { dispatch_group_enter(self.dispatch_group) dispatch_group_async(self.disp
..
为什么需要代码if (dispatch_get_current_queue() == socketQueue)?为什么我们不能直接使用dispatch_sync(socketQueue, block) ??? 提前谢谢! - (BOOL)isConnected { __block BOOL result = NO; dispatch_block_t block = ^{ re
..
我正在开发一个需要完成块和“障碍"功能的应用程序. 据我所知,NSOperation API具有completionBlock属性,而GCD API具有dispatch_barrier_(a)sync函数来处理障碍需求. 我该怎么做才能满足这两个需求? 谢谢! 解决方案 dispatch_group应该具有您需要的所有内容.只需为您的工作单位使用dispatch_group_asyn
..
我有以下块在后台执行请求. 我如何才能在请求完成之前取消该请求? dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(queue, ^{ NSData *thumbnailData = [NSURLConn
..
我一直在查看这个问题以尝试解决了我在此处的问题. tl; dr是我要使用GCD在执行某些任务时显示“等待"屏幕,然后在完成后隐藏该屏幕.现在,我有 - (void) doStuff { // Show wait on start [self.waitScreen setHidden:NO]; dispatch_queue_t queue = dispatch_que
..
我需要将图像上传到Web服务.以下是我返回上传图片的代码段.图像大小非常大(大约6Mb).我正在使用GCD在后台线程中上传该图像. if([VSCore ConnectedToInternet ]) { bgTask = [[UIApplication sharedApplication]beginBackgroundTaskWithExpira
..
我正在尝试从Ultralite数据库的6个不同的表中加载有关1万条记录的数据. 我为6个不同的表创建了不同的功能. 我曾尝试使用NSInvokeOperations,NSOperations,GCD,子类化NSOperation并行加载这些文件,但没有任何结果. 实际上,从1个表中加载10K需要4秒,而从另一个5秒中加载,如果我将这2个保持在队列中,则需要9秒.这意味着我的代码没
..
我有一个'concurrent'NSOperation,在它工作期间,它使用一些内部使用GCD的控制器类.当这些控制器类返回其完成块时,该完成块在另一个线程上. 我知道我可以将当前线程存储在操作启动方法中并运行performSelectorOnThread:,但是理想情况下,我希望将完成内容包装在GCD块中,并分派到与操作开始时相同的线程上.使用GCD甚至可以做到这一点,因为我只能指定要
..
我正在尝试编写返回NSArray的方法.我的NSMutableArray(friendUsers)将对象正确添加,但是在dispatch_async之外,该数组为空. 我尝试将用户添加到主队列中(如图所示),但该数组为空.有任何想法吗 ?感谢您的所有帮助. - (NSArray *)checkUsersInGroup { NSMutableArray *friendUsers =
..
我有几个表视图,这些表视图将 JSON 请求发送到服务器,将结果存储在核心数据中,并使用NSFetchedResultsController显示它们.我正在对GCD进行如下实验: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ // Perform JSON requests.
..
我有一个名为"ComLog"的"UIImage"返回类型方法.我想从该方法返回一个图像.在"ComLog"方法中,我使用GCD从数组中获取图像值.我使用以下代码,"NSLog(@" qqqqqqqqqqq%@“,exiIco)"打印'image'值,但NSLog(@"qqqqqqqqqqq%@",exiIco);“不. 这是详细信息: -(UIImage*) ComLog { Exibito
..
我有一种从服务器下载一些图片的方法.我有一个用异步块(NSMutableArray * imgtmp)定义的用于下载数据的缓冲区,但还没有弄清楚如何将数组从那里取出.访问imgtmp以返回其内容或从中设置实例变量的最佳方法是什么? 我一直在寻找 Apple阻止文档,但我一定不在正确的部分.我是否需要使用__block关键字声明imgtmp?我试过了,但是imgtmp在块外仍然是空的.谢谢!
..