grand-central-dispatch相关内容
我要过滤的图像很多,当我在创建的串行队列中执行此操作时,每个块完成后就会释放内存.当我将这项工作分派到全局GCD队列时,内存不会释放并且无法控制. 我将这些语句包装在一个自动释放块中,但这似乎没有什么不同. 是因为线程池以某种方式保留了对块的引用吗?一段时间后,内存被释放,但是在此之前,该应用将崩溃,其中包含大量图像. 为什么内存由全局队列保留,并且如何解决此问题,以便在每个块之
..
我有一个类的10个实例,需要执行一些后台任务.对于实例,这应该顺序发生,但是就实例可以彼此独立地工作而言,可能是并发的. 就速度和电池而言,哪个最具成本效益?什么时候需要担心我创建了太多队列? 这个(A)吗? - (dispatch_queue_t)queue { static dispatch_queue_t queue; static dispatch_onc
..
我对异步函数还比较陌生,我知道firebase的getDocument和getDocuments调用是异步的.在继续执行代码中的工作之前,我希望这两个调用均能完成.我一直在尝试通过调度组来实现这一点,但是到目前为止还没有成功.我有如下代码: let myGroup = DispatchGroup()
..
我正在使用以下代码从网上下载一些数据.我需要像以前一样保留数据吗?同样,来自该块内部的NSLog语句显示该数组已被填充,但是当我在该块外部运行NSLog时,该数组显示为(null).我如何将数据保存在dispatch_async方法之外? __block NSArray *downloadedCareerIds; __block NSArray *diskCareerIds;
..
上下文:我有一个使用GCD的iOS游戏应用程序.对于该应用程序,我有三个队列:主队列,游戏逻辑队列(自定义序列),物理队列(自定义序列). Physical Queue用于进行物理模拟,Game Queue用于进行游戏逻辑.因此,对于每次更新(每1/60秒),每个队列都会执行各自的工作,然后通过在其他队列上调度块来与其他队列共享. 问题: 使用GCD::当我玩游戏时,即队列正在做一些工
..
我是使用Grand Central Dispatch的新手之一.我阅读了有关使用GCD的Apple文档,但仍然不知道使用这种方法.我的想法是我的视图中有三种类型的上传按钮,我同时单击了按钮,我想使用NSURLCOnnection上传数据分发队列方法的内容基于按钮操作来上传数据.请帮助我 解决方案 尝试阅读Mike Ash关于大型中央调度的博客-它可以使您很好地了解如何在自己的代码中使用其A
..
我做错了什么?在操场上,它可以正常运行.但是,一旦我将其部署到iOS模拟器上,它就会返回错误的顺序. @objc func buttonTapped(){ let group = DispatchGroup() let dispatchQueue = DispatchQueue.global(qos: .default) for i in 1...4 {
..
这是我的代码段,我遇到了上述错误. dispatch_async(background_thread, ^{ cameras camera[10]; . . for(int i=0; i
..
在加载我的应用程序以执行某些行为时,我正在使用GCD的dispatch_after方法.预期的行为是从applicationDidFinishLaunchingWithOptions末尾等待3秒以执行在后台队列中运行的选择器. 我在测试设备上没有遇到任何崩溃,但是我有未捕获的SIGBUS信号的用户崩溃报告,原因是BUS_ADRALN异常.根据我对这段代码的了解,BUS_ADRALN错误表示地
..
我正在尝试了解iOS中的队列;用此代码 dispatch_queue_t coda_thread=dispatch_queue_create("coda_thread",NULL); //UIPROGRESS VIEW for(i=0;i
..
我正在向地图添加约3000 MKOverlay,并且您可以想象,这需要一段时间,有时甚至需要八秒钟.我正在寻找一种使用线程来提高性能的方法,以便用户可以在添加叠加层时四处移动地图.最好从地图区域内的 开始依次添加叠加层.我已经使用GCD尝试了以下方法: - (MKOverlayView*)mapView:(MKMapView*)mapView viewForOverlay:(id)overl
..
我有一种方法,每次调用它都需要延迟5秒.首先,我用sleep(5);做到了这一点-效果很好,但我相信-这不是obj-c方式,因此我尝试在GCD帮助下编写它.此过程的第一次调用会延迟约5秒钟,但是此队列中的其他调用将一个接一个地进行而没有延迟.如何解决这个问题? - (void) buyItemAtUUID:(NSString*)UUID { dispatch_barrier_asyn
..
我有一些代码可以获取当前GCD队列的标签以进行记录,如Swift 2所示: if let queueName = String(UTF8String: dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL)) where !queueName.isEmpty { detailedMessage += "[" + queue
..
我正试图通过至少在两个不同的内核之间分配主线程来加快进程速度,以减慢主线程的速度. 我想我可以做到这一点的原因是,每个单独的操作都是独立的,只需要两个点和一个浮点数即可. 但是,当我执行queue.asnc vs queue.sync时,我的第一个刺入点是代码的运行速度明显变慢,而且我不知道为什么! 这是同步运行的代码 var block = UnsafeMutablePo
..
我正在学习GCD,但对信号量有疑问. 这是我的代码: class ViewController: UIViewController { var semaphore: dispatch_semaphore_t! = nil override func viewDidLoad() { super.viewDidLoad() semaphore = dispatc
..
如何同步访问使用didSet的属性(使用GCD或objc_sync_enter)? 我有一个带有属性观察器的属性.如何使用私有队列同步属性的获取/设置 var state: State = .disconnected { // Q: How to sync get/set access here? didSet { // do something } } 解决方
..
我有一个需要处理的作业队列,该队列由计时器定期踢,而且在将新作业添加到队列时也通过调用线程来踢. 当队列被踢时,我想在另一个线程上启动队列的处理,因为我不想阻塞调用线程(在很多情况下,它将是UI线程). 为此,我在高优先级并发队列上运行了一个大型中央调度操作,这将创建我的http类的实例,并通过它提交作业(一个作业本质上是一个http请求). http类内部使用NSURLConn
..
要求 -我有一个要求,即我要接收JSON字典,并从该字典中检索图像和内容文本的数组.然后,我必须在集合视图中显示具有相应内容的所有图像. 更新- 首先,我需要根据图像大小计算出像元大小,该图像大小被缩放为一个固定的宽度(我可能不正确)需要完全下载所有图像,然后重新加载收藏夹视图 问题-但是问题是,当我在后台线程中下载图像并填充到单独的数组中时,该图像的添加顺序与JSON词典中的顺序不同
..
在关于SO的一个较早的问题之后,我现在正在寻找比较两个不同的主要中央调度队列,以尝试确定当前代码是否在主线程上运行.我的问题很简单:这是实现这一目标的有效方法吗?还是有一些我没有考虑过的陷阱? if (dispatch_get_current_queue() != dispatch_get_main_queue()) { // We are currently on a backg
..
基本上,这是一个简单的项目,其中涉及一个表视图,该表视图根据从api的JSON解析的数据进行更新.我相信DispatchQueue.main.async和completed: @escaping () -> ()与更新/重新加载表视图有关,但是我不确定它是如何工作的.请解释一下这两者的作用. import UIKit class ViewController: UIViewControll
..