创建全局 NSOperationQueue
Create global NSOperationQueue
我有一个 class:
class Item: NSManagedObject {
func fetchProducts() {
let backgroundQueue = NSOperationQueue()
backgroundQueue.maxConcurrentOperationCount = 5
for n in items {
backgroundQueue.addOperationWithBlock(){
self.someFunc(n)
}
}
}
}
据我所知,我为每个实例最多创建 5 个线程。但我想创建全局 NSOperationQueue()
我创建了全局结构:
struct GVariables {
static let globalBackgroundQueue = NSOperationQueue()
}
问题:如何设置maxConcurrentOperationCount
等设置?
因为如果我这样修改方法:
func fetchProducts() {
GVariables.globalBackgroundQueue.maxConcurrentOperationCount = 5
}
会一样吗?还是不是?
如果我明白你想要什么,我会做更多这样的事情:
struct GlobalQueue {
static let globalBackgroundQueue = GlobalQueue()
let backgroundQueue = NSOperationQueue()
private init () {
backgroundQueue.maxConcurrentOperationCount = 5
//... more settings
}
}
这是一个单例,它拥有自己的一个实例。您可以在初始化程序中初始化任何您想要的值。请注意 private 关键字,它确保您不能创建此 class 的多个实例。
强制免责声明:当心单身...
我有一个 class:
class Item: NSManagedObject {
func fetchProducts() {
let backgroundQueue = NSOperationQueue()
backgroundQueue.maxConcurrentOperationCount = 5
for n in items {
backgroundQueue.addOperationWithBlock(){
self.someFunc(n)
}
}
}
}
据我所知,我为每个实例最多创建 5 个线程。但我想创建全局 NSOperationQueue()
我创建了全局结构:
struct GVariables {
static let globalBackgroundQueue = NSOperationQueue()
}
问题:如何设置maxConcurrentOperationCount
等设置?
因为如果我这样修改方法:
func fetchProducts() {
GVariables.globalBackgroundQueue.maxConcurrentOperationCount = 5
}
会一样吗?还是不是?
如果我明白你想要什么,我会做更多这样的事情:
struct GlobalQueue {
static let globalBackgroundQueue = GlobalQueue()
let backgroundQueue = NSOperationQueue()
private init () {
backgroundQueue.maxConcurrentOperationCount = 5
//... more settings
}
}
这是一个单例,它拥有自己的一个实例。您可以在初始化程序中初始化任何您想要的值。请注意 private 关键字,它确保您不能创建此 class 的多个实例。
强制免责声明:当心单身...