2
NSDate *dateStartAutoComplete = [NSDate date];
[[NSOperationQueue new]addOperationWithBlock:^{
NSTimeInterval startFetching = [NSDate.date timeIntervalSinceDate:dateStartAutoComplete];
PO(@(startFetching));
...我們如何設置[[NSOperationQueue new] addOperationWithBlock的優先級:?
結果:
2013-03-15 06:00:12.413 BadgerNew[4120:907] @(tiTotalTime): 0.353954017162323
2013-03-15 06:00:13.476 BadgerNew[4120:8d23] @(startFetching): 0.106734037399292
2013-03-15 06:00:13.502 BadgerNew[4120:8d23] @(finishFetching): 0.1373000144958496
2013-03-15 06:00:13.717 BadgerNew[4120:907] @(tiTotalTime): 0.3521299958229065
2013-03-15 06:00:13.869 BadgerNew[4120:675b] @(startFetching): 0.3048880100250244
2013-03-15 06:00:13.918 BadgerNew[4120:675b] @(finishFetching): 0.3537369966506958
2013-03-15 06:00:14.018 BadgerNew[4120:907] @(tiTotalTime): 0.454010009765625
2013-03-15 06:00:16.317 BadgerNew[4120:8847] @(startFetching): 1.014970004558563
2013-03-15 06:00:16.375 BadgerNew[4120:8847] @(finishFetching): 1.072436988353729
2013-03-15 06:00:16.661 BadgerNew[4120:8d23] @(startFetching): 1.045746028423309
2013-03-15 06:00:16.691 BadgerNew[4120:8d23] @(finishFetching): 1.07514101266861
2013-03-15 06:00:16.721 BadgerNew[4120:907] @(tiTotalTime): 1.419299006462097
2013-03-15 06:00:16.759 BadgerNew[4120:907] @(tiTotalTime): 1.142507016658783
2013-03-15 06:00:19.709 BadgerNew[4120:8847] @(startFetching): 1.773845970630646
2013-03-15 06:00:19.795 BadgerNew[4120:8847] @(finishFetching): 1.860616981983185
2013-03-15 06:00:19.900 BadgerNew[4120:907] @(tiTotalTime): 1.965098977088928
花了1.4秒之間,我們開始執行櫃檯,並在NSOperationQueue運作。
它甚至不是單線程隊列。
事情是我使用NSOperationQueue,而不是NSOperation。那麼我該怎麼做呢? – 2013-03-15 02:52:18
@Jim'addOperationWithBlock'方法將塊包裝在一個操作對象中。但是,您無法獲得對該對象的引用,無論如何你真的無法做任何事情。 [一旦操作是隊列就不應該被修改。](http://developer.apple.com/library/mac/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationObjects/OperationObjects.html#//apple_ref/doc/uid/TP40008091-CH101-SW1) – 2013-03-15 03:45:28
NSBlockOperation是一個絕妙的主意。謝謝布萊克! – lehn0058 2015-04-29 21:40:43