NSThread и управление памятью - PullRequest
1 голос
/ 26 апреля 2010

Представьте, что я создаю и выполняю объект NSThread, используя detachNewThreadSelector:toTarget:withObject:. Метод, выполняемый потоком, может выглядеть так:

- (void)search {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    // perform a lengthy search here.

    [pool release];
}

Затем я мог бы использовать метод cancel, чтобы убить поток во время его работы до освобождения пула. Что происходит с объектом NSAutoreleasePool? Я полагаю, он протечет, не так ли?

Ответы [ 2 ]

2 голосов
/ 26 апреля 2010

-(void)cancel не вызывает отмену, он просто запрашивает это.Ваш -(void)search будет работать до конца.Прочитайте « Ответ на команду отмены » для получения подробной информации.

1 голос
/ 26 апреля 2010

Я настоятельно рекомендую NSOperationQueue для простых параллельных задач.

...