grand-central-dispatch相关内容
我正在创建一个跨平台的VOIP应用程序,该应用程序使用UDP发送和接收数据.我正在使用音频单元进行实时记录和播放.在处理原始数据时,通信是快速而流畅的,但是当我涉及到像 OPUS 这样的编解码器时,从iPhone编码并发送到Android的数据在其间会发出咔嗒声.我一直在努力解决这个问题. 从Android到iPhone的编码数据可以完美播放,并且没有任何问题.我正在使用 TPCircula
..
我正在尝试声明一个包含在后台线程中执行的块的计算属性. 因此,当我处理此属性时,它为nil,因为计算未准备好时会返回结果.如何更好地纠正这一点?谢谢! enum Result { case error(error: Error) case success(data: T) } var userID: Result? { var result:
..
我正在使用Swift 3 DispatchGroup等到多个异步操作完成(根据此答案,其中完美且符合预期. 有没有一种方法可以检查已经输入了多少个操作,例如dispatchGroup.count或类似的东西? 解决方案 您可以在调试说明中看到进入该组的次数: OS_dispatch_group:group [0x60000221d950] = {xref = 3,ref = 3
..
由于斯坦福大学的CS193p课程(在iTunes U上)以及Big Nerd Ranch的iOS编程书,我学会了iOS编程.在这两种方法中,他们都建议使用dispatch_async(),dispatch_get_main_queue()等来处理线程和并发操作.但是,在WWDC 2012上有关构建并发UI的会议上,发言人建议使用NSOperationQueue. dispatch_*()和N
..
我有这段代码: DispatchQueue.main.asyncAfter(deadline: .now() + (delay * Double(isDelayAccounted.hashValue)) + extraDelay) { self.isShootingOnHold = false self.shoot() self.sho
..
到目前为止我所看到的答案( 1 , 2 ,var token: dispatch_once_t = 0 func test() { dispatch_once(&token) { print("This is printed only on the first call to test()") } print("This is printed for each call to test()") }
..
关于GCD创建的多少个线程,是否有很好的文献记载? 在WWDC,他们告诉我们它是围绕CPU内核建模的.但是,如果我举这个例子: for (int i=1; i
..
当前,我正在使用NSThread在另一个线程中缓存图像. [NSThread detachNewThreadSelector:@selector(cacheImage:) toTarget:self withObject:image]; 或者: [self performSelectorInBackground:@selector(cacheImage:) withObject:i
..
在Swift中,有时会使用这种模式. DispatchQueue.global().async { // do stuff in background, concurrent thread DispatchQueue.main.sync { // update UI } } 此模式的目的很明确.在全局线程中进行耗时的计算,以使UI不会被锁定,并在
..
使用NScache从UICollectionView中的Web服务器加载图像时,我遇到一些问题. 问题: 图像显示不正确: 有时它们未显示在相应的单元格中 或 图像在滚动变化 情况: 我有3个数组,可以从Web服务器的viewDidLoad()函数中正确加载.这些数组是:vPrice,vTitle和vImages_api 我对单元格的自定义类有:
..
在语言版本3中进行更改后,Swift中dispatch_once的新语法是什么?旧版本如下. var token: dispatch_once_t = 0 func test() { dispatch_once(&token) { } } 这些是对libdispatch的更改. 解决方案 来自 doc : 派遣 免费功能dispatch_once在以下版本
..
我在修改线程内的视图时遇到问题.我试图添加一个子视图,但是显示大约需要6秒钟或更长时间.我终于让它工作了,但我不知道它到底是怎么做到的.所以我想知道为什么它起作用,以及以下方法之间的区别是什么? 这有效-立即添加了视图: dispatch_async(dispatch_get_main_queue(), ^{ //some UI methods ej [view add
..
我正在使用第三方框架在Swift中编写命令行应用程序(如果我正确理解代码),当套接字接收数据时,该框架依赖GCD回调来完成某些操作.为了更好地理解该框架,我一直在研究该框架的作者与该框架一起编写的示例Cocoa应用程序. 因为示例应用程序是Cocoa应用程序,所以运行循环是自动处理的.我包括示例应用程序(MIT许可证)中的代码片段,以提供有关其工作原理的想法: class AppDel
..
在Swift 2中,我可以使用dispatch_after通过中央集中调度来延迟动作: var dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0.1 * Double(NSEC_PER_SEC))) dispatch_after(dispatchTime, dispatch_get_main_q
..
我已经重写了要求在线服务获取结果的getter方法. 如何强制吸气剂仅从同步块返回结果? @interface MyClass () @property (nonatomic, strong) NSMutableDictionary* myDictionary; @end @implementation MyClass -(NSMutableDictionary*) myDictio
..
当我在循环的每个迭代中进行异步调用时,尝试使我的for循环行为同步.我觉得我需要以某种方式使用Grand Central Dispatch,但不确定. func test(strings: [String], completion: @escaping ((_ value: [String]) -> Void)) { var results: [String] = [] fo
..
我使用Swift已有一段时间了,GCD仍然让我有些困惑. 我读过: https://www.raywenderlich.com /60749/grand-central-dispatch-in-depth-part-1 以及派遣的Apple文档: https://developer.apple.com/documentation/dispatch 我了解GCD允许多个
..
在刷新集合视图之前,我需要依次运行两个函数.第一个函数从firebase中提取autoid,并将其写入数组.然后,第二个函数(getLocation)使用该数组对Firebase进行另一个调用,以检索每个autoid下的值(位置). 我正在使用DispatchGroup()来确保第一个函数在第二个函数开始之前完成.但是我还需要第二项功能在通知刷新集合视图之前完成. 我已经编写了一个基本
..
给出以下代码段: #import @interface DispatchTests:XCTestCase { dispatch_queue_t _workQueue; dispatch_queue_t _readWriteQueue; int _value; } -(无效)阅读; -(void)写; @end @i
..
当我尝试在由Grand Central Dispatch管理的SIGTERM处理程序中睡眠时,我在启动的托管守护程序中遇到了一种奇怪的情况,如此处。 一切正常,在收到SIGKILL之前,我确实得到了SIGTERM信号处理程序。不要在SIGTERM处理程序中睡觉。但是,一旦我入睡,即使是极短的时间,例如 usleep(1); ,我也根本不会得到SIGTERM处理程序,而是 顺便说一句,我
..