问题标签 [nsoperationqueue]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - NSOperations 队列和处理应用程序退出
我即将创建一系列NSOperation
s 并在队列中运行它们。
它们都是顺序的,一次运行一个。
这些操作将从 Web 获取数据并创建和保存核心数据托管对象。
如何处理应用程序退出的情况?由于操作在分离线程中运行,我怎样才能让主线程等到当前操作“安全”退出?在某些情况下,我很高兴线程(操作)在它们完成之前退出,因为在进一步的应用程序启动时,作业将继续并从中断的地方继续。
非常感谢,
麦克风
iphone - 当 Core Animation 触发动画时,操作队列是否有帮助?
核心动画使用后台线程。在主线程上执行大量计算时,CA 由于其低优先级线程而停止动画。在这种情况下,操作队列如何提供帮助?
iphone - 在后台获取核心数据
我有一个带有表格视图的导航视图,当单击一行时,行 indexPath 被传递到下一个视图。
在 Details 视图 viewDidLoad 中,我从 Core Data 获取数据。我使用来自应用程序委托的获取
[appDelegate loadItem:i];
如您所见,我只传递了一个带有行号的整数。
问题是:我怎样才能在另一个线程中进行这个调用过程。(在后台)我需要这个,因为有时获取的结果太大,所以处理需要 3 秒延迟推送详细信息视图。
我需要在三秒钟内显示一个活动指示器,因此我需要将 Fetch 放在另一个线程中,以便能够在处理 fetch 时将 UI 用于指示器。
我想要最简单的方法,因为我是新手。发布一些代码会很棒。或链接:)
iphone - 我们如何在 MKMapView 动画或移动时暂停添加注释。[iPhone SDK 3]
我有一个 MKMapView,另一个类有一个向 MKMapView 添加注释的线程。
但问题是, MKMapView.annotations 是非原子的。因此,当其他类正在添加注释时......如果用户不移动地图的可见区域,它看起来没问题。但是,如果您继续移动它,并且此时其他类正在向地图添加注释,则应用程序崩溃。因为在地图制作动画期间数组发生了变异。
我制作了 NSOperationQueue,并将每个添加注释作业添加到队列中。
然后每当地图的区域改变时,暂停 NSOperationQueue.. 然后在区域改变完成后重新启动它。
我可以摆脱大多数崩溃......但它仍然偶尔发生。
任何想法?
iphone - 在导航栏上切换视图时,如何安全退出 NSOperationQueue 线程而不会出现 EXC_BAD_ACCESS 错误
我正在使用 UITableView 来显示一些字符串消息,并且我使用 NSOperationQueue 来保存一个自定义的 NSOperation,它在后台线程中获取消息。成功获取一条消息后,自定义的 NSOperation 会通知 UITableView 控制器显示它。
如果我在加载所有消息后单击导航栏上的后退按钮以从 UITableView 切换到其他视图,则一切正常。但是,如果我在某些消息仍在加载时单击后退按钮,则会抛出 EXC_BAD_ACCESS。我检查了在自定义 NSOperation 使用performSelectorOnMainThread
方法通知 UITableView 控制器时发生的异常。听起来目标 UITableView 控制器在视图切换后并非无效,但我认为导航控制器将保存视图控制器实例。我可以知道如何解决这个问题吗?谢谢。
自定义操作在 UITableView 控制器中初始化,代码如下:
自定义的 NSOperation 类将使用以下代码更新 UITableView:
iphone - OpenFlow :: 如何流式传输图像
我正在尝试在 iPhone 应用程序中使用 OpenFlow ( http://apparentlogic.com/openflow/ ) 从我的服务器流式传输文件。我怎样才能做到这一点?我应该使用 NSOperationQueue 吗?
到目前为止,我已经能够: * 使用本地文件 * 使用他们来自 Flickr 的演示(它使用 Flickr API 和库)
加载本地图像的代码:
ios - NSOperation 阻止 UI 绘画?
我对使用NSOperation
和绘图有一些建议:
我有一个主线程创建我的NSOperation
子类,然后将其添加到NSOperationQueue
.
我NSOperation
做了一些繁重的处理,它打算在它的 main() 方法中循环几分钟,不断处理一些工作,但现在我只有一个 while() 循环,里面有一个 sleep(1),它被设置为 go大约只有 5 次(用于测试)。
产生它的主(原始)线程NSOperation
负责绘制到视图并更新 UI。
我打算让 NSOperation 线程使用通知来告诉主线程它已经完成了一些处理,目前这个通知在每次通过它的 while() 循环时发送一次(即每秒一次,因为它只是在做睡眠(1))。主线程(视图)注册以接收这些通知。
通知立即进入主线程,看起来是异步的,看起来还不错。似乎两个线程都按预期运行......也就是说 - 同时运行。(我使用 NSLog() 只是为了大致检查每个线程何时发送和接收通知)。
当视图收到通知并调用其处理程序方法时,我只需增加一个整数变量,并尝试将其绘制到视图(当然作为字符串)。在测试中,drawRect: 中的代码将这个整数(作为字符串)绘制到屏幕上就好了。
但是:这是我的问题(抱歉,这里花了一点时间):当主线程(视图)收到来自 NSOperation 的通知时,它会更新这个测试整数并调用 [self setNeedsDisplay]。但是,在 NSOperation 完成之前,视图不会重绘自身!我预计 NSOperation 作为一个单独的线程将无法阻止主线程的事件循环,但似乎这就是正在发生的事情。当 NSOperation 完成并且它的 main() 返回时,视图最终会立即重新绘制自己。
也许我没有NSOperation
正确使用。我在“非并发”模式下使用它,但尽管有这个名字,我的理解是它仍然会产生一个新线程并允许异步处理。
非常感谢任何帮助或建议,如果您想查看一些代码,请告诉我。
cocoa - ASIHTTPRequest 在同步模式下吞噬了我的 NSOperation 变量
嘿,我一直在与这个问题作斗争一段时间。也许我在多线程知识中缺少一些东西,但这就是发生的事情。当我创建一个 nsoperation 队列时,所有分配的变量在“[request startSynchronous];”之后都会被清除。行代码。这就是我所说的:
对象在这里仍然存在
[请求开始同步];
然后对象消失在这里!
我确信这与原则理解上的差距有关,但我几天来一直在重新安排代码,但没有成功。
...
iphone - 多个 NSURLConnection 会导致性能延迟吗?
我做了一个多文件下载器。我使用 NSOperationQueue 实现了 NSURLConnection。
NSOpetationQueue 有许多 NSURLConnection 操作。
并将 MaxConcurrentOperationCount 设置为 10。
我以为我的代码是对的,但是运行项目后,它是错误的。发生了一些连接错误。文件网址是正确的。并且文件下载完成。但下载文件,出现“超时”错误。
太严重了。我用 8 个文件对其进行了测试,总大小只有 3M。但是总下载时间是2分钟~!!!
一个文件下载只需几秒钟。(2~3 s) 但多文件下载出现很多负担!!(2分钟)
我不知道这是为什么...有人知道是什么原因吗?
objective-c - 当 MaxConcurrentOperationCount > 1 时,我得到 EXC_BAD_ACCESS
您好,我正在使用 NSOperationQueue 在后台下载图像。我创建了一个自定义 NSOperation 来下载图像。我将图像放在表格单元格中。问题是如果我执行 [operationQueue setMaxConcurrentOperationCount: 10] 并向下滚动几个单元格,程序会因 EXC_BAD_ACCESS 而崩溃。每次它在桌子的同一个地方崩溃。一个接一个地有 3 个单元,它们是同一家公司的,并且具有相同的徽标,因此基本上它应该下载图像 3 次。每隔一段时间它工作正常。
这就是我处理下载图像的方式。如果我在上面的函数中注释掉
[delegate didFinishDownloadingImage: self];
它不会崩溃,但它当然没用。