jjzjj

NSThread

全部标签

objective-c - 在后台生成图像

我目前正在构建一个生成图像并将它们存储在NSMutableArray中的应用程序,然后在UINavigation(Cell.imageView.image)中使用它。我需要能够处理多达2000张图像而不会导致我的应用程序出现延迟。目前,我如何设置此生成是通过在访问cellForRowAtIndexPath时调用生成方法。这似乎会在调用下一个导航之前造成4-5秒的延迟。幸运的是,在这4-5秒之后生成就完成了,没有任何问题。在iProducts的世界里,等待4-5秒并不是真正的选择。我想知道在后台生成这些图像的选项是什么。我尝试使用线程[selfperformSelectorInBackg

iphone - 在后台调用函数和在线程中调用函数的区别

我无法理解在后台调用函数之间的区别[selfperformSelectorInBackground:@selector(getFriendFaceBookList)withObject:nil];并在Thread中调用相同的函数:[NSThreaddetachNewThreadSelector:@selector(getFriendFaceBookList)toTarget:selfwithObject:nil];哪一个是在非ARC应用程序中工作的最佳方式。谢谢 最佳答案 它们是相同的。参见DocumentationperformS

ios - CLLocationManager 和串行位置更新处理

我需要使用标准位置服务并执行一些处理,包括一些网络调用,每次位置更新都会收到通知。我需要以FIFO顺序处理位置更新,以保持对设备的跟踪,并尽快获得结果。确保按顺序处理位置并且处理不重叠(并且除了获得快速响应之外)的最佳方法或技术应该是什么:操作队列,调度队列或直接线程(或者甚至是其他方式,如果存在)?看起来操作队列和调度队列在性能方面几乎相同,但是调度队列似乎更容易处理,所以我不知道它们各自的优点是什么。关于线程,我一直不鼓励经常使用它们,但我不知道它们相对于操作/调度队列的效率是否真的很明显,是否值得使用它们。提前致谢 最佳答案

iphone - 二次线程关于

我的应用程序中有一个主线程和一个辅助线程。众所周知,主线程正在被UI使用。我使用辅助线程进行View的后台加载。我有一个主Controller,我称之为虚拟Controller。从那里我调用我的主Controller,它处于横向模式。所以基本上我要做的是,当我旋转我的虚拟Controller时,我希望能够加载我的主景观Controller,反之亦然。当我从dummy旋转到main时,一切正常。主程序有一系列子Controller要加载,所以我将该进程放在辅助线程上,到那时它们正在加载时,我会显示一个加载程序屏幕。dummy是普通ViewController,main是模态视图Contr

ios - 检测主线程何时被锁定/繁忙(IOS)

有什么方法可以检测主线程何时被锁定/忙碌(也就是不会响应触摸事件)?可能的方向检查dispatch_get_main_queue的大小(但我不知道如何操作这个对象来查看它的大小)[[UIApplicationsharedApplication]isIgnoringInteractionEvents]但这种方法只在部分时间有效 最佳答案 使用仪器工具“timeprofiler”,然后找出阻塞主线程的线索。例如:我发现一种方法正在运行主线程的12.7%cpu时间。然后我发现它的名字是“waitingThread”。看起来该方法正在阻塞主

iphone - 当应用程序进入后台时运行后台线程

当应用程序进入后台状态时,我需要在后台安排一个任务。我必须这样做,以便每x次调用远程服务,然后在远程服务发生某些事件时显示本地通知。(我知道它看起来像RPN,是的,但由于某些原因我无法使用PRM)我试过这段代码:-(void)applicationDidEnterBackground:(UIApplication*)application{[[UIApplicationsharedApplication]beginBackgroundTaskWithExpirationHandler:^(void){remoteServiceCallThread=[[NSThreadalloc]ini

ios - isMainThread 和 currentThread == mainThread 有什么区别?

我正在查看一些旧代码,并看到以下if语句:if([NSThreadcurrentThread]!=[NSThreadmainThread])我偷偷怀疑这和if(![[NSThreadcurrentThread]isMainThread])我很怀疑,因为我们从该领域获得了一些崩溃报告(仅限iOS6),这些崩溃报告似乎是由需要在主线程上运行的代码引起的,而实际上不是。该代码似乎受到前一个if语句的保护,但考虑到我们看到的崩溃次数,我不相信。上面的两个if语句是否等效,或者第一个是否有可能由于某种原因而失败? 最佳答案 Howcould[

ios - NSMainQueueConcurrencyType 和 NSPrivateQueueConcurrencyType 上下文的并发?

使用NSMainQueueConcurrencyType和NSPrivateQueueConcurrencyType初始化的托管对象上下文连接到主队列和私有(private)队列,它们是串行队列,其中操作按FIFO顺序执行。使用以下示例代码:NSLog(@"Currentthread:%@",[NSThreadcurrentThread]);[mainMocperformBlock:^{NSLog(@"main1-%@",[NSThreadcurrentThread]);}];[mainMocperformBlockAndWait:^{NSLog(@"main2-%@",[NSThre

ios - 属性、线程、内存管理和摇滚乐

环境:MacOSX10.9、Xcode5.0.2、ARC禁用。问题:所有线程完成作业后如何释放属性内存。请参见下面的示例。我正在用一个按钮“(IBAction)btnRun:(id)sender”创建迷你示例。示例读取txt文件并填充NSArray属性(sharedListWords)。然后运行两个线程,每个线程显示单词,请参阅OUT部分。当线程完成一项工作时,属性(self.sharedListWords)不会被释放!但我想要为(self.sharedListWords)属性分配的空闲内存。“btnRun”操作在线程完成作业之前退出,我无法在此操作中释放(self.sharedLis

ios - 为什么它在主线程上运行?

非常简单的代码:queue=[[NSOperationQueuealloc]init];[queueaddOperationWithBlock:^{NSLog(@"%@",[NSThreadmainThread]?@"main":@"notmain");}];打印“主要”。为什么?除非我调用[NSOperationQueuemainQueue],否则它不应该在bg线程中异步运行吗? 最佳答案 [NSThreadmainThread]总是返回一个对象(因此在转换为BOOL时产生YES),因为当有一个主线程时你的程序正在运行。如果要判断