все! Я хочу создать несколько потоков в моем приложении. Я использую следующий код для создания потока. Этот метод ButtonPress где я создаю тему:Как создать несколько потоков в одном классе?
- (void) threadButtonPressed:(UIButton *)sender {
threadStartButton.hidden = YES;
threadValueLabel.text = @"0";
threadProgressView.progress = 0.0;
[NSThread detachNewThreadSelector:@selector(startMethod) toTarget:self withObject:nil];
}
Это, где я звоню метод резьбы:
- (void)startMethod {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[self performSelectorOnMainThread:@selector(threadMethod) withObject:nil waitUntilDone:NO];
[pool release];
}
- (void)threadMethod {
float actual = [threadProgressView progress];
threadValueLabel.text = [NSString stringWithFormat:@"%.2f", actual];
if (actual < 1) {
threadProgressView.progress = actual + 0.01;
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(makeMyProgressBarMoving) userInfo:nil repeats:NO];
}
else
threadStartButton.hidden = NO;
}
Эта нить работает должным образом. Но когда я пытаюсь создать другой поток в том же классе, используя тот же метод, он создается правильно, но при методе «performSelectorOnMainThread» он не выполняет этот метод. Может ли кто-нибудь помочь мне?
Можете ли вы описать, что вы пытаетесь сделать? Похоже, вы пытаетесь запустить метод на основном потоке из отдельных потоков, что, по-вашему, поражает цель многопоточности, не так ли? Есть причина для этого, но из вашего вопроса неясно, что вы действительно пытаетесь сделать, поэтому, пожалуйста, предоставьте нам немного больше информации, чтобы мы могли помочь. –
Pleasw проверить мой отредактированный вопрос! – neha
Пожалуйста, дайте мне знать, если я делаю что-то лишнее. Потому что я пробую это в первый раз. – neha