gpt4 book ai didi

objective-c - 为什么 nsoperation 连续工作?

转载 作者:行者123 更新时间:2023-11-29 11:06:02 48 4
gpt4 key购买 nike

我正在使用以下代码进行 nsoperation。问题是所有三个任务都是串行运行的。我该怎么做才能使任务并行运行。我尝试实现 start 和 isconcurrent 方法,但它不起作用。请帮助.. .给出的是我的 uaview Controller 类

- (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;
}

最佳答案

currentQueue 正在返回主队列,这是一个在主运行循环上执行的串行队列。您应该创建自己的 NSOperationQueue 来同时运行这些操作。

关于objective-c - 为什么 nsoperation 连续工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13564871/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com