1

を使用して NSThread オブジェクトを作成して実行するとしますdetachNewThreadSelector:toTarget:withObject:。スレッドによって実行されるメソッドは次のようになります。

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

    // perform a lengthy search here.

    [pool release];
}

cancel次に、プールが解放される前に、実行中のスレッドを強制終了するメソッドを使用する場合があります。NSAutoreleasePool オブジェクトはどうなりますか? きっと漏れますよね?

4

2 に答える 2

2

-(void)cancelキャンセルを強制するのではなく、単に要求するだけです。あなた-(void)searchは最後まで走ります。詳細については、「キャンセルコマンドへの応答」をお読みください。

于 2010-04-26T14:39:49.893 に答える
1

単純な同時実行タスクにはNSOperationQueueを強くお勧めします。

于 2010-04-26T14:50:20.300 に答える