質問: [[NSAutoreleasePool alloc] init]; //something to do... [pool release]; } ``` 私の問題は、私は開始し、このスレッドを時々停止する必要があり、その後、汎用スレッドを持つために.hでスレッドを宣言しなければならないということです。それは可能ですか?
回答: スレッドの実行を停止する正しい方法は、実行を停止するようにうまくやってみることです。あなたのスレッドでは、そのような要求を聞き、適切なタイミングで従います。 Appleのスレッドプログラミングガイドによると: > Cocoa、POSIX、およびMultiprocessing Servicesはスレッドを直接殺すためのルーチンを提供していますが、このようなルーチンの使用はお勧めしません。スレッドを強制終了すると、そのスレッドはそれ以降にクリーンアップされません。スレッドによって割り当てられたメモリがリークする可能性があり、スレッドが現在使用している他のリソースが適切にクリーンアップされない可能性があり、後で問題が発生する可能性があります。 > > > > 操作の途中でスレッドを終了する必要がある場合は、キャンセルまたは終了メッセージに応答するようにスレッドを最初から設計する必要があります。長時間実行する操作では、定期的に作業を停止し、そのようなメッセージが到着したかどうかを確認することを意味します。スレッドが終了するように求めるメッセージが表示された場合、スレッドは必要なクリーンアップを実行して正常に終了する機会を得ます。それ以外の場合は、次のデータのまとまりを処理して処理するだけです。 > > スレッド内で `[NSThread exit];` を使用するか、現在のスレッドをキャンセルするか、 または `[NSThread cancel]` [メソッド](https://developer.apple.com/library/ios/#documentation/cocoa/reference/foundation/Classes/NSThread_Class/Reference/を使用することもできます。あなたのプログラムの 別の スレッドにキャンセルするように通知するには、Reference.html )を使用してください。