草庐IT

nsoperationqueue

全部标签

ios - iOS 中带有进度报告的可取消异步操作集

假设我使用另一个SDK(我无法控制)和一个异步导入1个文件的API,并在完成时调用完成回调。以下是一个示例API。funcimportFile(filePath:String,completion:()->Void)我需要使用此API导入10个文件(一个接一个),但我需要它是可取消的,例如在文件1、2、3成功导入后,在导入文件4时,我希望能够取消整套操作(导入10个文件),这样文件4就会完成(因为它已经开始),但文件5-10将不再导入。此外,我还需要报告导入进度。成功导入文件1后,我应该报告10%的进度(10个中的1个已完成)。我怎样才能做到这一点?我正在考虑将NSOperationQ

ios - 非唯一的 NSURLSessionDataTask taskIdentifiers

我有一个iOS应用程序,它使用NSOperationQueue、NSOperations和AFNetworking2.1.0来触发对服务器的请求。-[NSOperationmain]方法看起来像这样:-(void)main{AFHTTPSessionManager*sessionManager=[AFHTTPSessionManagersharedSessionManager];[sessionManagerGET:@"url"parameters:nilsuccess:^(NSURLSessionDataTask*task,idresponseObject){NSLog(@"Succ

ios - 链接 `NSOperation` : Pass result from an operation to the next one

我一直在寻找一种方法来传递链式NSOperation的结果。例如,假设我们有3个链接的操作:Operation1从服务器下载JSON数据Operation2对接收到的JSON进行解析和建模Operation3下载用户图片因此Op3将依赖于Op2,而Op2又依赖于Op1。但我正在寻找从Op1->Op2,然后从Op2->Op3传递结果的方法:[operation1startWithURL:url];[operation2parseJSONfromOp1IntoModel:JSONData];[operation3downloadUserImagesForUser:UserModelObje

iphone - 在for循环中取消NSOperation?

我正在尝试在iOS上使用NSOperation在后台线程上实现搜索。我不想子类化NSOperation所以这就是我正在做的:[searchQueuecancelAllOperations];NSInvocationOperation*op=[[NSInvocationOperationalloc]initWithTarget:selfelector:@selector(filterContentForSearchText:)object:self.searchDisplayController.searchBar.text];[searchQueueaddOperation:op];[

c# - .NET 中 NSOperationQueue 的等价物

只是想知道是否有人可以告诉我NSOperationQueue(来自MacOS/iOS)在c#/.Net中的等价物是什么。对于那些不熟悉它的人来说,它是一个线程队列。您可以设置优先级和并发操作,它将通过队列运行您一次设置的线程数。线程完成后,将加载一个新线程。谢谢,本 最佳答案 System.Threading.ThreadPool功能类似。http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx 关于

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 - 如何在 NSOperationQueue 完成之前阻止 NSOperation?

我有一个数据加载操作需要在主线程之外运行以避免潜在的阻塞问题。为此,我使用了NSOperationQueue和NSOperations。但是,出现的一个问题是其中一个操作会根据传入的信息生成其他操作。试图解决这个问题也解决了我在其他地方遇到的一些小问题,因为我想到的解决方案是为NSOperation提供它自己的子任务队列。问题是,一旦“main”退出,NSOperation将被标记为“finished”,无论子队列是否完成处理;我该如何覆盖该行为? 最佳答案 您可以在退出操作主方法之前向您的子队列发送一条waitUntilAllOp

objective-c - 后台网络调用 - iOS

我需要在后台将一些数据发布到网络服务器。澄清一下,“在后台”,我指的不是显示旋转图标和使用AsyncTask之类的东西将数据发布到Web服务的正常方式。或ASIHTTPRequest的[requeststartAsynchronous]方法。我需要维护一个数据队列,当用户在应用程序中工作时,线程可以异步地开始处理并发布到Web服务。我正在寻找一些关于设计这样的队列的帮助,特别是在某些边缘情况下,例如用户接听电话,在发布时注销应用程序,用户离开应用程序以转到另一个应用程序一个帖子正在发生之类的。你会如何处理这些情况?您是否可以推荐执行此操作的任何源代码?谢谢,泰迦。

iphone - iOS - 如何检查 NSOperation 是否在 NSOperationQueue 中?

来自文档:AnoperationobjectcanbeinatmostoneoperationqueueatatimeandthismethodthrowsanNSInvalidArgumentExceptionexceptioniftheoperationisalreadyinanotherqueue.Similarly,thismethodthrowsanNSInvalidArgumentExceptionexceptioniftheoperationiscurrentlyexecutingorhasalreadyfinishedexecuting.那么如何检查我是否可以安全地将N

objective-c - 使用 NSOperationQueue 作为后进先出堆栈?

我需要执行一系列url调用(获取WMS磁贴)。我想使用LIFO堆栈,所以最新的url调用是最重要的。我现在想在屏幕上显示磁贴,而不是平移后5秒前屏幕上显示的磁贴。我可以从NSMutableArray创建我自己的堆栈,但我想知道NSOperationQueue是否可以用作后进先出堆栈? 最佳答案 您可以使用-[NSOperationsetQueuePriority:]设置操作队列中操作的优先级。每次添加操作时,您都必须重新调整现有操作的优先级,但您可以实现您正在寻找的东西。您基本上会降级所有旧的,并给予最新的最高优先级。