问题标签 [dispatch-async]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 调度队列和全局 NSMutableDictionary - Objective C
我正在尝试使用调度队列中的全局 NSMutableDictionary 。但是,这些项目不断返回 NULL。
我要做的是使用 dispatch_queue 访问外部 json 文件,然后使用此信息填充 UITableView。
这就是我所拥有的
vc.h:
vc.m:
如果我访问队列中的 jsonArray,它会返回正常并打印城市的日志。但是,如果我尝试在队列外使用它,它会返回 NULL。
我想弄清楚发生了什么,有什么想法吗?
我需要在同一个视图中以不同的方法使用 jsonArray,所以我需要它是全局的。
ios - 同步块和 dispatch_async
当我们在块内调用 dispatch_async() 时,使用 @synchronized() 在 IOS 中的锁会发生什么情况。
例如:
dispatch_async 调用中的锁是否仍然有效?或者更重要的是,在 dispatch_async() 中使用另一个 @synchronized() 调用有什么缺点吗?
ios - 串行调度队列如何保证资源保护?
如果我提交 100 个任务,每个任务都访问并改变银行账户余额,我知道串行队列将按顺序执行每个任务,但是在使用 dispatch_async 时这些任务是否也按顺序完成?
如果我异步提交到串行队列的任务 #23 需要很长时间才能完成怎么办?任务 #24 会仅在任务 #23 完成后开始,还是任务 #24 在任务 #23 完成之前开始?如果是这样,任务#24 在开始工作时会不会出现错误的银行账户余额,从而破坏数据完整性?
谢谢!!
objective-c - 如何将 (OS_dispatch_data *) 5018112 字节转换为 NSData 以放入 UIImage
我一直在寻找这个问题的答案,有些似乎它们可能是我需要的,但我不确定。我找到了这个问题 #9152851和这个问题 #2617625并在一堆链接上戳了一下,但我需要一些指导。
本质上,我正在调度异步调用以使用 OpenCV 处理图像。您可以通过此处的代码看到我将其转换为 NSData *,然后再将其发送回我的代表。
但是当我回到我的委托时,我的处理位图是 (OS_dispatch_data *) 类型并且包含一个字节值。所以,当我尝试设置 UIImage 时,它被设置为 null。
这是值的屏幕截图:
那么,我如何将这些字节(或它们是什么)转换为我可以填充到 UIImage 中的东西?
预先感谢您的帮助。
-------------------------------------------------- -----添加新图像-----------------------------------------
这个新图像有帮助吗?
谢谢你。
ios - while (condition) {} 是否会破坏 NSRURLConnection 的连接?
我改变了我的旧的NSthread
,因为无法从后台线程更新 UI。现在我正在使用dispatch_async
.
问题是当此代码第二次执行时,在 ApplicationDidBecomeActive 中(当用户隐藏并再次显示应用程序时)永远不要退出那个同时,保持无限循环。
这里我展示了关于dispatch_async的新代码,NSURLConnection
代码一直有效,最后恢复...我认为问题不存在
第一个连接(json),而不是我在那个时候等待:
用他们的方法:
有任何想法吗?再次感谢。
ios - setNeedsDisplay 在主队列上提交但未被调用
下面的方法是在非主线程上调用的,具体来说是在录音队列回调中
其中 myGraphView 是一个自定义 UIView 对象。据我所知,setNeedsDisplayInRect:
应该在主线程上调用,这就是我准备dispatch_async...
就绪的原因。现在的问题是- (void)drawRect:(CGRect)rect
我为 myGraph 实现的方法永远不会被调用,即使NSLog
块中的 已经被调用了很多次。
ios - dispatch_async 永远不会完成整个块的执行
我是 GCD 的新手,似乎简单的使用它对我不起作用。我有以下代码:
日志显示“顶部”,没有其他内容。中间的代码没有无限循环——它永远不会一直执行。我可以在中间的代码中设置断点,程序执行会中断,之后不会中断。中间有一个点,有时执行会在断点处停止,有时则不会。
在我看来,synchronizationQueue 调度队列似乎正在被释放,但我不能调用 dispatch_retain,因为编译器抱怨 dispatch_retain 不能在 ARC 中使用。我错过了什么?
作为对人们询问中间代码的回应,程序执行在此方法调用中停止(由...code...的这些行之一表示)在 if (fetchArray.count) 行中,注释如下.
我会补充一点,如果我简单地注释掉对 dispatch_async 的调用,那么一切都可以正常执行。它只是在主线程上执行,我宁愿让它不这样做。
ios - ALAssetLibrary performBlockAndWait(GUI 挂起问题)
我正在编写一个图像上传器,它索引相机胶卷上的某些事件,创建作业,然后将这些作业写入 CoreData。另一个线程从 CoreData 读取以上传图像。
我不断收到 UI 冻结。事件虽然 GUI 被冻结,但我可以看到后台队列仍在继续工作。当我中断(点击暂停按钮)时,我看到主线程通常看起来像这样
我搜索了通常的论坛,但似乎找不到关于队列和 ALAssetsLibrary 的大量信息。
让我再谈谈我的代码。当它们的图像被索引(使用_processingQueue)并写入核心数据时,我有一些块(使用主队列)将数据传递到视图控制器,例如#indexed、#skipped 等......因为它们被放入主队列,我没有看到问题。
由于图像是从 CoreData 中提取并上传的,因此有类似的方法可以移动上传进度条等......再次投射到主队列。
您认为问题可能出在哪里?我访问 ALAssetsLibrary 的方法在 @synchonized(self) 块中。这一切都在一个类中。
从多个队列访问图书馆是错误的吗?
ios - dispatch_async 不能一直工作
我有以下代码...
该方法display:
将消息放在UITextView
.
我在按下按钮时调用此函数。有时 dispatch_async 块没有被调用。它只是通过它。但是,我每次都可以看到打印的日志消息。
任何人都可以分享可能导致这种情况的原因吗?
ios - 如何停止加载数据
我有一个 UIImageView。此 imageView 的图像是从 Web 加载的。有人可以告诉我如何停止加载吗?
这是我的代码: