草庐IT

非阻塞

全部标签

ios - 执行许多阻塞主线程的 UIKit 操作

应用程序启动时,我以编程方式创建许多具有透明背景颜色的复杂UIView,每个都是应用程序中的“屏幕”(必须这样,因为下面有动画背景)。这会导致应用在静态启动图像上停留很长时间(大约4秒)。我想在显示动画时创建所有UIView。我无法在后台线程上创建UIView。我怎样才能做到这一点?尝试1:-(void)viewDidLoad{[superviewDidLoad];dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{UIView*baseView=[[UIViewalloc]init

iphone - 为什么对主队列的 dispatch_sync( ) 调用会阻塞主队列?

我知道这不是一个强有力的问题,但我必须弄清楚这个概念。我定义了myBlock如下。void(^myBlock)(void)=^{for(inti=0;i现在在viewDidLoad方法中,当我在主队列上独立使用dispatch_sync()方法时,主队列被阻塞。这是示例。-(void)viewDidLoad{[superviewDidLoad];dispatch_queue_tqueue=dispatch_get_main_queue();dispatch_sync(queue,myBlock);}但是但是,当我在主线程上使用相同的dispatch_sync()函数时在并发队列上触发的

objective-c - AVAudioPlayer 阻塞和 iOS 5 问题

我目前正在从远程服务器下载一个.mp3文件,文件加载后,我将其存储在Caches目录中。然后我创建一个AVAudioPlayer实例并将数据加载到其中:-(void)playAudio:(NSString*)path{NSLog(@"startplayingaudioatpath%@",path);NSError*error=nil;NSData*audioData=[NSDatadataWithContentsOfFile:path];_audioPlayer=[[AVAudioPlayeralloc]initWithData:audioDataerror:&error];if(er

iphone - UIImageView+AFNetworking 图片请求队列阻塞来自RestKit的其他网络请求

我正在通过创建RKObjectRequestOperation并将它们添加到RestKit的队列来使用RestKit下载数据:RKObjectRequestOperation*operation=[RKobjectRequestOperationWithRequest:requestsuccess:...failure:...];[RKenqueueObjectRequestOperation:operation];那个效果很好。此外,此数据显示在ListView中,其中包含显示相关用户图标的UIImageViews。但是,这些用户图标不是通过RestKit下载的,而是通过底层的AFN

ios - 滚动 UICollectionView 阻塞主线程

我有一个使用AVSampleBufferDisplayLayer播放H264的视频解码器,并且一切正常,直到我在同一个ViewController上滚动UICollectionViewController。这似乎会阻塞导致应用程序崩溃的主线程。我曾尝试使用dispatch_async将此代码放入单独队列中的一个block中,但仍然存在相同的阻塞问题以及解码器的进一步性能问题。dispatch_async(sampleQueue,^{[sampleBufferQueueaddObject:(__bridgeid)(sampleBuffer)];if([avLayerisReadyForM

ios - 如何诊断 iOS 应用程序中的阻塞?

所以,我有一个运行良好的iOS应用程序-通常,除了UI偶尔会阻塞。是否有用于诊断偶尔无响应的UI的标准技术?在我的例子中,我使用LRResty异步提取数据,结果数据由NSXMLParser解析为一些NSMutableArray对象。我将它固定在XML解析上,但UI并没有始终如一地阻塞。它主要在点击我的UINavigationBar上的后退按钮后阻塞,但初始TableView也不会滚动,直到与搜索栏交互。是否有解析器仍在工作,或者请求仍在工作? 最佳答案 我在仪器中使用“TimeProfiler”来查看哪些方法导致UI无响应(来源:b

javascript - 移动 Safari 上 JavaScript websocket 中的明显阻塞行为

我遇到了一个真正令人头疼的问题,我希望有人能对我的问题有所了解。我正在编写的应用程序是一个基于JS的客户端,本质上是一个桌面共享服务。该服务从桌面捕获图像,将它们编码为base64编码的jpeg,然后通过websocket将它们发送到JS客户端。客户端然后显示这些图像(作为数据URI),用户可以将鼠标移到图像上以及单击图像,这些鼠标事件被编码为XML中的命令,这些命令被放入队列并每15毫秒在计时器上提供一次服务,这样就可以在发送到服务之前清除队列中的冗余或重复命令。然后执行这些命令(在桌面上产生点击事件,移动鼠标等),并产生新的桌面图像并继续循环。除了iPad上Safari的一些非常不

ios - 核心数据后台处理仍然阻塞UI

对于我的应用程序,我正在从核心数据存储中获取大量对象,这会导致应用程序卡住并阻止所有UI输入。我想在应用保持响应的同时在后台进行抓取,并仅在数据可用时更新tableview。以此目的我已经使用NSPrivateQueueConcurrencyType设置了一个新的NSManagedObjectContext并将其作为主要MOC的子项。虽然我的设置正在返回所需的对象,但似乎所有处理仍在卡住UI,并且与旧代码的响应几乎没有区别,旧代码的一切都发生在主队列上。根据这个article子上下文设置无助于保持UI响应,而我在网上的其他任何地方都读过如果你想从繁重的处理中减轻主队列,这是要走的路吗?

iphone - dispatch_queue_t 仍然阻塞主线程

我想触发一个方法并让它在后台运行——我不关心它启动后到底发生了什么。所以在我的主viewDidLoadMethod中,我有我所有的常用代码和这个:dispatch_queue_tnewImages=dispatch_queue_create("loadimageinbackground",NULL);dispatch_async(newImages,^{[selfgetNewImages];});dispatch_release(newImages);我的假设是创建队列,然后将函数调用设置为在后台线程中运行,我的应用程序将继续运行。事实并非如此。是从该函数调用的所有内容都自动移动到后台

cocoa-touch - 使 UIAlertView 阻塞

我需要让UIAlertView阻塞。因为我有功能,我需要返回UIAlertView选择。但问题是,在显示UIAlertView之后,我的函数代码正在进一步执行,所以我无法捕捉到UIAlertView选择(我可以在委托(delegate)方法中做到这一点,但我需要返回函数结果)。我尝试使用NSCondition阻止UIAlertVIew。但是代码不起作用。condition=[NSConditionnew];result=0;[conditionlock];UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:@"Fingerprint"m