2012-11-26 82 views
1

我正在使用下面的代碼爲nsoperation.The問題是所有三個任務串行運行。我可以做什麼使任務並行運行。我嘗試實施開始和isconcurrent方法,但它does not work.please幫助... 鑑於是我uaview控制器類nsoperation爲什麼連續工作?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    Store *S=[ [Store alloc] init]; 
    S.a=25; 

    NSOperationQueue *someQueue = [NSOperationQueue currentQueue]; 

    someQueue.MaxConcurrentOperationCount = 3; 

    NSInvocationOperation *invocationOp2 = [[NSInvocationOperation alloc] initWithTarget:self 
                       selector:@selector(ymain) 
                        object:nil]; 

    NSInvocationOperation *invocationOp3 = [[NSInvocationOperation alloc] initWithTarget:self 
                       selector:@selector(ymain2) 
                        object:nil]; 
    NSInvocationOperation *invocationOp4 = [[NSInvocationOperation alloc] initWithTarget:self 
                       selector:@selector(ymain3) 
                        object:nil]; 


    [someQueue addOperation:invocationOp2]; 
    [someQueue addOperation:invocationOp3]; 
    [someQueue addOperation:invocationOp4]; 




} 
-(void)ymain 
{ 





    for (int i = 0 ; i < 10000 ; i++) { 
     NSLog(@"in the A main"); } 
} 

這是其子類

@interface A : NSOperation 

@end 

@implementation A 

bool executing; 
bool finished; 
-(void)main 
{ 

} 
- (BOOL)isConcurrent 
{ 
    return YES; 
} 

- (BOOL)isReady 
{ 
    return YES; 
} 
+0

你需要繼承'NSOperation'並覆蓋那裏的一些方法,而不是在你的'UIViewController'中。看看[Apple的編程指南](http://developer.apple.com/library/ios/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationObjects/OperationObjects.html)。 – hwaxxer

+0

我已經在另一個類中劃分了nsoperation – zzzzz

+0

如果你劃分NSOperation,爲什麼你不使用子類? –

回答

2

currentQueue正在返回主隊列,這是一個在主runloop上執行的串行隊列。您應該創建自己的NSOperationQueue以同時運行這些操作。

0

NSOperationQueue管理取決於各種因素的操作數量的其他類。這是一個你不能實現的實現細節。您不能強制它同時執行操作。

你可以有唯一的影響是設置操作扶養,這將影響其操作順序執行順序(這是沒多大用的你!)

而且currentQueue將返回nil當它被稱爲從NSOperation以外。如果你使用mainQueue那麼你會得到總是在主線程上運行的隊列,並且只運行一個操作。你需要創建一個新的隊列。

相關問題