首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建全局NSOperationQueue

创建全局NSOperationQueue
EN

Stack Overflow用户
提问于 2016-02-12 14:07:50
回答 1查看 294关注 0票数 1

我有一堂课:

代码语言:javascript
复制
class Item: NSManagedObject {
    func fetchProducts() {
         let backgroundQueue = NSOperationQueue()
         backgroundQueue.maxConcurrentOperationCount = 5
         for n in items {
             backgroundQueue.addOperationWithBlock(){
                self.someFunc(n)
             }
        }
    }
}

如果我理解,我会为每个实例创建最多5个线程。但是我想要创建全局NSOperationQueue()

我创建了全局结构:

代码语言:javascript
复制
struct GVariables {
    static let globalBackgroundQueue = NSOperationQueue()
}

问题是:如何设置maxConcurrentOperationCount和其他设置?

因为如果我像这样修改方法:

代码语言:javascript
复制
func fetchProducts() {
   GVariables.globalBackgroundQueue.maxConcurrentOperationCount = 5
}

会是一样的?还是不?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-12 14:45:10

如果我明白你想要什么,我会做更像这样的事情:

代码语言:javascript
复制
struct GlobalQueue {
    static let globalBackgroundQueue = GlobalQueue()
    let backgroundQueue = NSOperationQueue()

    private init () {
         backgroundQueue.maxConcurrentOperationCount = 5
         //... more settings

    }
}

这是一个单独的实例,它保存着自己的一个实例。您可以在您的初始化器中初始化任何您想要的值。注意私有关键字,它确保您不能创建这个类的多个实例。

义务免责声明:小心单身人士..。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35364623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档