Dla "ogniem i zapomnij", spróbuj [self performSelectorInBackground:@selector(heavyStuff) withObject:nil]
. Jeśli masz więcej niż jedną operację takiego, może chcesz sprawdzić NSOperation
i jej podklasy NSInvocationOperation
. NSOperationQueue
udało łączenie nici, liczba jednocześnie wykonywania operacji i zawiera informację, czy blokujących metod powiedzieć, kiedy wszystkie operacje zakończone:
[self myFoo];
NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(heavyStuff) object:nil];
[operationQueue addOperation:operation];
[operation release];
[self myBar];
...
[operationQueue waitUntilAllOperationsAreFinished]; //if you need to block until operations are finished
Na niższym poziomie, można użyć wykorzystanie -[NSThread detachNewThreadSelector:@selector(heavyStuff) toTarget:self withObject:nil]
.
brakuje a 'g' w performSelectorInBackround – Erich
stałe. dzięki @Erich. –