草庐IT

grand-central-dispatch

全部标签

iPhone - 关于调度计时器和计时的问题

我必须定期(每0.16秒)触发一个方法。公差可以说高达30%。接近16毫秒,更好。我已经尝试过NSTimers,但它们不够精确。我试过线程,也有同样的问题。我现在正在尝试调度计时器。我正在使用Apple提供的代码:dispatch_source_tCreateDispatchTimer(uint64_tinterval,uint64_tleeway,dispatch_queue_tqueue,dispatch_block_tblock){dispatch_source_ttimer=dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER,0,

ios - 在 iOS 中使用 NSURLConnection 按顺序下载文件

我想按顺序下载3个文件。其中两个是txt文件,一个是.gz文件。我正在使用NSURLConnection下载上述文件。我是iOS编程的新手。我在SO和google的其他问题中看到我们可以使用串行调度队列串行地执行一些操作。但我不知道如何使用NSURLConnection来做到这一点。我在下面尝试过但没有成功。dispatch_queue_tserialQueue=dispatch_queue_create("com.clc.PropQueue",DISPATCH_QUEUE_SERIAL);dispatch_async(serialQueue,^{[selfdownloadProp];

ios - 为什么 NSOperationQueue 在主线程上处理大量任务时比 GCD 或 performSelectorOnMainThread 更快?

例如,我有100次for循环。并且需要更新UIImageView,最后2个方法一样慢。为什么?它们有什么区别?//fastest[[NSOperationQueuemainQueue]addOperationWithBlock:^{[btnThumbsetImage:[UIImageimageWithData:data]forState:UIControlStateNormal];[scrollViewaddSubview:btnThumb];}];//slowlydispatch_async(dispatch_get_main_queue(),^{[btnThumbsetImage:

ios - DispatchWallTime 在 iOS 上有什么作用?

我认为DispatchTime和DispatchWallTime之间的区别与应用程序是否已暂停或设备屏幕是否已锁定或其他原因有关:DispatchTime应该暂停,而DispatchWallTime应该继续运行,因为现实世界中的时钟继续运行。所以我写了一个小测试应用程序:@UIApplicationMainclassAppDelegate:UIResponder,UIApplicationDelegate{varwindow:UIWindow?funcapplication(_application:UIApplication,didFinishLaunchingWithOptions

ios - 理解 ios UIView 动画 block 和 dispatch_async(dispatch_get_main_queue) block

我正在尝试更好地理解这个主题。假设我想做一些非常酷的动画,如下所示-(void)coolAnimation{[UIViewanimateWithDuration:somedurationanimations:^{someanimation}];}既然它是一个动画block,它会自动添加到main_queue中吗?或者,为了获得最佳实践,我应该始终将UI更新添加到main_queue中,如下所示。dispatch_async(dispatch_get_main_queue(),^{[selfcoolAnimation];}); 最佳答案

ios - 在 Cocoa Touch/UIKit 上,如何从后台线程检测用户界面的变化?

在CocoaTouch上,如果我们从后台线程更新UI元素,就会发生不好的事情。问题是,它不会一直发生,所以一些轻微的后台UI干预可能会在一段时间内被忽视,直到它踢到你的dentry。有没有办法让UIKit在迂腐模式下运行,以便一旦有人从后台线程更新元素,它就会崩溃或将某些内容记录到控制台? 最佳答案 在进行UI更新之前,您可以检查自己是否在主线程上执行操作。我自己编写了以下宏:///StickthisincodeyouwanttoassertifrunonthemainUIthread.#defineDONT_BLOCK_UI()\

ios - 信号量:没有看到我的回调方法被调用,死锁

我有两个轻量级网络请求,我想同时执行,然后在两个都完成后,调用一个block函数。我创建的方法如下:-(void)loadWithCompletion:(void(^)())completion{dispatch_semaphore_tcustomerSemaphore=dispatch_semaphore_create(0);dispatch_semaphore_tcommunitySemaphore=dispatch_semaphore_create(0);dispatch_async(dispatch_queue_create("mp.session.loader",DISPAT

错误:org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is

项目场景:错误:org.springframework.web.util.NestedServletException:Handlerdispatchfailed;nestedexceptionisjava.lang.NoSuchMethodError:javax.servlet.http.HttpServletResponse.setContentLengthLong(J)V错误:org.springframework.web.util.NestedServletException:Handlerdispatchfailed;nestedexceptionisjava.lang.NoSuch

ios - 嵌套 dispatch_async(dispatch_get_main_queue()^{}) 的目的是什么?

我继承了一些具有这种相当不寻常的嵌套序列的代码。通常的范例将对主队列进行一次分派(dispatch)以更新UI。下面显示的代码将对主队列的调度嵌套在对主队列的另一个调度中。-(void)viewDidLoad{//Setupsomedata//AdjustUIdispatch_async(myBackgroundQueue,^{while(Do_some_time_consuming_work){//Timeconsumingworkgoeshereif(things_are_going_slowly){dispatch_async(dispatch_get_main_queue(),

ios - 等待网络调用完成

我想要实现的是发出网络请求并等待它完成,这样我就可以决定下一步应该使用什么应用程序。通常我会避免这样的解决方案,但这种情况很少见,因为代码库有很多遗留问题,我们没有足够的时间应用必要的更改来纠正错误。我正在尝试使用以下定义编写一个简单的输入输出方法:-(nullableid)validCardForLocationWithId:(ObjectId)locationId;问题是,为了在这个方法中执行一些验证,我需要发出一个网络请求来接收必要的信息,所以我想等待这个请求完成。我首先想到的是使用dispatch_semaphore_t,所以我得到了这样的结果:-(nullableid)val