2012-11-26 30 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那么你会得到总是在主线程上运行的队列,并且只运行一个操作。你需要创建一个新的队列。

相关问题