NSOperation cancelAllOperations需要很长的时间来取消操作
问题描述:
我有一个NSOperationQueue,我已经添加了我的自定义类的对象(从NSOperation继承)我已经设置了“setMaxConcurrentOperationCount”为1.但是,当我取消所有这样的操作:NSOperation cancelAllOperations需要很长的时间来取消操作
[mOperationQueue cancelAllOperations];
有时需要10-15秒才能全部取消。
NSOperationQueue包含大约60-80个任务(操作)。
最初我是在取消主线程这显然阻塞主线程,但现在我已经做到了在thread.But我的主要问题上不同的是,它需要太长时间的操作。 有何建议?
答
你的操作应该检查,看看它的(例如在其实施的-main
)被取消更频繁。
除此之外,运行一个采样器,看看所有的时间。
感谢您的回答,但我认为“主”后,才“开始”依次检查,看其是否的NSOperation没有被取消被称为所以是否真的需要检查。 ? – Suny 2012-03-05 09:50:05
@Suny它取决于什么时候都在采取。当你的操作需要很长时间才能完成时,检查'-main'很重要,你可以干净地退出'-main'。 – justin 2012-03-05 10:08:05