草庐IT

perform_async

全部标签

ios - 同步块(synchronized block)和 dispatch_async

当我们在block中调用dispatch_async()时,使用@synchronized()的IOS中的锁会发生什么。例如:idmyID-(void)foobar{@synchronized(myID){dispatch_async(){//dostuffwithmyID};}}锁在dispatch_async调用中是否仍然有效?或者更重要的是,在dispatch_async()中使用另一个@synchronized()调用有什么缺点吗? 最佳答案 假设您正在尝试同步与后台队列中的此myID对象的交互,您希望它以相反的方式进行,即

ios - 同步块(synchronized block)和 dispatch_async

当我们在block中调用dispatch_async()时,使用@synchronized()的IOS中的锁会发生什么。例如:idmyID-(void)foobar{@synchronized(myID){dispatch_async(){//dostuffwithmyID};}}锁在dispatch_async调用中是否仍然有效?或者更重要的是,在dispatch_async()中使用另一个@synchronized()调用有什么缺点吗? 最佳答案 假设您正在尝试同步与后台队列中的此myID对象的交互,您希望它以相反的方式进行,即

Async/Await初学者指南

在JavaScript中,一些操作是异步的。这意味着它们产生的结果或者值不会立即奏效。看看下面的代码:functionfetchDataFromApi(){//Datafetchinglogichereconsole.log(data);}fetchDataFromApi();console.log('Finishedfetchingdata');JavaScript解释器不会等待异步fetchDataFromApi函数完成后再解释下一条语句。因此,在打印API返回的真实数据之前,它就会打印Finishedfetchingdata。大多数情况下,这并不是我们想要的行为。幸运的是,我们可以使用a

ios - NSCountResultType 和 countForFetchRequest :error: in terms of performance? 有区别吗

我曾经使用NSCountResultType来计算我的CoreData上下文中的实体。不久前,我遇到了countForFetchRequest:error:,它似乎只用另一种(更具可读性的)语法来做同样的事情。尽管语法不同,这两者在性能、内存管理或其他方面有什么区别吗? 最佳答案 似乎完全没有区别(只有一个返回NSUInteger,另一个返回包含NSNumber的NSArray)。设置启动参数-com.apple.CoreData.SQLDebug3revealsthatbothNSFetchRequest*request=[NSF

ios - NSCountResultType 和 countForFetchRequest :error: in terms of performance? 有区别吗

我曾经使用NSCountResultType来计算我的CoreData上下文中的实体。不久前,我遇到了countForFetchRequest:error:,它似乎只用另一种(更具可读性的)语法来做同样的事情。尽管语法不同,这两者在性能、内存管理或其他方面有什么区别吗? 最佳答案 似乎完全没有区别(只有一个返回NSUInteger,另一个返回包含NSNumber的NSArray)。设置启动参数-com.apple.CoreData.SQLDebug3revealsthatbothNSFetchRequest*request=[NSF

ios - 我应该如何在 iOS 中使用 GCD dispatch_barrier_async(似乎在其他 block 之前而不是之后执行)

我正在尝试在iOS5中同步以下代码:一个对象有一个方法可以发出HTTP请求获取一些数据,包括图像的URL数据到达后,文本数据用于填充核心数据模型同时,分派(dispatch)第二个线程异步下载图片;当该图像已缓存并在CoreData模型中可用。由于图片下载需要一段时间,我们立即返回CoreData对象,它具有除图像之外的所有属性来电者。此外,当第二个线程完成下载时,CoreData模型可以保存。这是(简化的)代码:-(void)insideSomeMethod{[SomeHTTPRequestwithCompletionHandler:^(idretrievedData){if(!re

ios - 我应该如何在 iOS 中使用 GCD dispatch_barrier_async(似乎在其他 block 之前而不是之后执行)

我正在尝试在iOS5中同步以下代码:一个对象有一个方法可以发出HTTP请求获取一些数据,包括图像的URL数据到达后,文本数据用于填充核心数据模型同时,分派(dispatch)第二个线程异步下载图片;当该图像已缓存并在CoreData模型中可用。由于图片下载需要一段时间,我们立即返回CoreData对象,它具有除图像之外的所有属性来电者。此外,当第二个线程完成下载时,CoreData模型可以保存。这是(简化的)代码:-(void)insideSomeMethod{[SomeHTTPRequestwithCompletionHandler:^(idretrievedData){if(!re

performance - iOS/核心动画 : Performance tuning

我的应用程序在我的iPad上运行。但它的表现非常糟糕——我的速度低于15fps。谁能帮我优化一下?它基本上是一个轮子(派生自UIView),包含12个按钮(派生自UIControl)。当用户旋转它时,按钮会动态展开和收缩(例如,12点钟位置的按钮应该始终是最大的)所以我的轮子包含:-(void)displayLinkIsCallingBack:(CADisplayLink*)dispLink{://usingCATransactionlikethisgoesfrom14fpsto19fps[CATransactionbegin];[CATransactionsetDisableActi

performance - iOS/核心动画 : Performance tuning

我的应用程序在我的iPad上运行。但它的表现非常糟糕——我的速度低于15fps。谁能帮我优化一下?它基本上是一个轮子(派生自UIView),包含12个按钮(派生自UIControl)。当用户旋转它时,按钮会动态展开和收缩(例如,12点钟位置的按钮应该始终是最大的)所以我的轮子包含:-(void)displayLinkIsCallingBack:(CADisplayLink*)dispLink{://usingCATransactionlikethisgoesfrom14fpsto19fps[CATransactionbegin];[CATransactionsetDisableActi

ios - 主队列上的 dispatch_async block 永远不会执行

我有一个应用程序使用连接队列来处理后台线程上的连接。每个连接发送一个JSONpost,然后当它收到成功时,将一些对象保存到coredata中。所有连接完成后,我在主线程上调用dispatch_async来调用finished方法。但是,在发送/保存数据的非常特殊的条件下,我注意到主线程的dispatch_asyncblock永远不会被调用,应用程序屏幕卡住,所有执行停止,并且应用程序闲置且屏幕卡住。根据xcode的处理能力为0%。这是失败block的方法。-(void)connectionDidComplete{_completeConnections++;_syncProgress=