grand-central-dispatch相关内容

全局GCD队列的内存使用情况

我要过滤的图像很多,当我在创建的串行队列中执行此操作时,每个块完成后就会释放内存.当我将这项工作分派到全局GCD队列时,内存不会释放并且无法控制. 我将这些语句包装在一个自动释放块中,但这似乎没有什么不同. 是因为线程池以某种方式保留了对块的引用吗?一段时间后,内存被释放,但是在此之前,该应用将崩溃,其中包含大量图像. 为什么内存由全局队列保留,并且如何解决此问题,以便在每个块之 ..
发布时间:2020-11-20 05:22:54 其他开发

一个应该制造多少个dispatch_queue?少即是好?

我有一个类的10个实例,需要执行一些后台任务.对于实例,这应该顺序发生,但是就实例可以彼此独立地工作而言,可能是并发的. 就速度和电池而言,哪个最具成本效益?什么时候需要担心我创建了太多队列? 这个(A)吗? - (dispatch_queue_t)queue { static dispatch_queue_t queue; static dispatch_onc ..
发布时间:2020-11-20 05:22:50 其他开发

iOS-Grand Central Dispatch从dispatch_async中的块获取价值

我正在使用以下代码从网上下载一些数据.我需要像以前一样保留数据吗?同样,来自该块内部的NSLog语句显示该数组已被填充,但是当我在该块外部运行NSLog时,该数组显示为(null).我如何将数据保存在dispatch_async方法之外? __block NSArray *downloadedCareerIds; __block NSArray *diskCareerIds; ..
发布时间:2020-11-20 05:22:43 移动开发

借助Grand Central Dispatch快速堆增长

上下文:我有一个使用GCD的iOS游戏应用程序.对于该应用程序,我有三个队列:主队列,游戏逻辑队列(自定义序列),物理队列(自定义序列). Physical Queue用于进行物理模拟,Game Queue用于进行游戏逻辑.因此,对于每次更新(每1/60秒),每个队列都会执行各自的工作,然后通过在其他队列上调度块来与其他队列共享. 问题: 使用GCD::当我玩游戏时,即队列正在做一些工 ..
发布时间:2020-11-20 05:21:37 移动开发

使用分派方法在iPhone中基于按钮操作上传数据

我是使用Grand Central Dispatch的新手之一.我阅读了有关使用GCD的Apple文档,但仍然不知道使用这种方法.我的想法是我的视图中有三种类型的上传按钮,我同时单击了按钮,我想使用NSURLCOnnection上传数据分发队列方法的内容基于按钮操作来上传数据.请帮助我 解决方案 尝试阅读Mike Ash关于大型中央调度的博客-它可以使您很好地了解如何在自己的代码中使用其A ..
发布时间:2020-11-20 05:21:34 移动开发

GCD dispatch_after调用导致SIGBUS信号

在加载我的应用程序以执行某些行为时,我正在使用GCD的dispatch_after方法.预期的行为是从applicationDidFinishLaunchingWithOptions末尾等待3秒以执行在后台队列中运行的选择器. 我在测试设备上没有遇到任何崩溃,但是我有未捕获的SIGBUS信号的用户崩溃报告,原因是BUS_ADRALN异常.根据我对这段代码的了解,BUS_ADRALN错误表示地 ..
发布时间:2020-11-20 05:21:24 移动开发

MKOverlayView性能

我正在向地图添加约3000 MKOverlay,并且您可以想象,这需要一段时间,有时甚至需要八秒钟.我正在寻找一种使用线程来提高性能的方法,以便用户可以在添加叠加层时四处移动地图.最好从地图区域内的 开始依次添加叠加层.我已经使用GCD尝试了以下方法: - (MKOverlayView*)mapView:(MKMapView*)mapView viewForOverlay:(id)overl ..

通过GCD延迟与sleep()

我有一种方法,每次调用它都需要延迟5秒.首先,我用sleep(5);做到了这一点-效果很好,但我相信-这不是obj-c方式,因此我尝试在GCD帮助下编写它.此过程的第一次调用会延迟约5秒钟,但是此队列中的其他调用将一个接一个地进行而没有延迟.如何解决这个问题? - (void) buyItemAtUUID:(NSString*)UUID { dispatch_barrier_asyn ..
发布时间:2020-11-20 05:21:15 移动开发

同步队列中的代码比异步队列中的代码运行更快.不应该相反吗?

我正试图通过至少在两个不同的内核之间分配主线程来加快进程速度,以减慢主线程的速度. 我想我可以做到这一点的原因是,每个单独的操作都是独立的,只需要两个点和一个浮点数即可. 但是,当我执行queue.asnc vs queue.sync时,我的第一个刺入点是代码的运行速度明显变慢,而且我不知道为什么! 这是同步运行的代码 var block = UnsafeMutablePo ..
发布时间:2020-11-20 05:20:09 移动开发

如何在大型中央调度操作中运行异步操作?

我有一个需要处理的作业队列,该队列由计时器定期踢,而且在将新作业添加到队列时也通过调用线程来踢. 当队列被踢时,我想在另一个线程上启动队列的处理,因为我不想阻塞调用线程(在很多情况下,它将是UI线程). 为此,我在高优先级并发队列上运行了一个大型中央调度操作,这将创建我的http类的实例,并通过它提交作业(一个作业本质上是一个http请求). http类内部使用NSURLConn ..

在串行队列中串行下载图像非常慢

要求 -我有一个要求,即我要接收JSON字典,并从该字典中检索图像和内容文本的数组.然后,我必须在集合视图中显示具有相应内容的所有图像. 更新- 首先,我需要根据图像大小计算出像元大小,该图像大小被缩放为一个固定的宽度(我可能不正确)需要完全下载所有图像,然后重新加载收藏夹视图 问题-但是问题是,当我在后台线程中下载图像并填充到单独的数组中时,该图像的添加顺序与JSON词典中的顺序不同 ..
发布时间:2020-11-20 05:19:56 移动开发

这是比较两个GCD队列的正确方法吗?

在关于SO的一个较早的问题之后,我现在正在寻找比较两个不同的主要中央调度队列,以尝试确定当前代码是否在主线程上运行.我的问题很简单:这是实现这一目标的有效方法吗?还是有一些我没有考虑过的陷阱? if (dispatch_get_current_queue() != dispatch_get_main_queue()) { // We are currently on a backg ..
发布时间:2020-11-20 05:19:53 移动开发

"DispatchQueue.main.async"和“已完成"是什么:@escaping()-> ()'在此代码段中是什么意思?

基本上,这是一个简单的项目,其中涉及一个表视图,该表视图根据从api的JSON解析的数据进行更新.我相信DispatchQueue.main.async和completed: @escaping () -> ()与更新/重新加载表视图有关,但是我不确定它是如何工作的.请解释一下这两者的作用. import UIKit class ViewController: UIViewControll ..
发布时间:2020-11-20 05:19:52 移动开发