0

私はAFNetworking AFHTTPClient例のためだけに使用していますが、この質問はNSOperationQueue一般的なものです。

クライアントによって行われたリクエストのAFHTTPClient管理。NSOperationQueue

また、cancelAllOperationsを繰り返し処理してそれぞれself.operationQueue.operationsを呼び出すメソッドもあり[operation cancel]ます。

この権利を理解すると、キューで待機しているすべての操作がキャンセルされます。つまり、まだ開始されていない操作ですが、現在実行中の操作はどうなりますか?キャンセルされませんか?

4

1 に答える 1

2

Appleのドキュメントから

現在実行中の操作の場合、キャンセルとは、操作オブジェクトの作業コードがキャンセル状態を確認し、実行を停止して、終了としてマークする必要があることを意味します。キューに入れられているがまだ実行されていない操作の場合、キューは、キャンセルイベントを処理し、それ自体を終了としてマークできるように、操作オブジェクトのstartメソッドを呼び出す必要があります。

操作は、タスクが終了したことを報告するまでキューに残ります。タスクを終了することは、必ずしも操作がそのタスクを完了まで実行したことを意味するわけではありません。操作をキャンセルすることもできます。操作オブジェクトをキャンセルすると、オブジェクトはキューに残りますが、タスクをできるだけ早く中止する必要があることをオブジェクトに通知します。現在実行中の操作の場合、これは、操作オブジェクトの作業コードがキャンセル状態をチェックし、実行中の処理を停止し、それ自体を終了としてマークする必要があることを意味します。キューに入れられているがまだ実行されていない操作の場合、キューは、キャンセルイベントを処理し、それ自体を終了としてマークできるように、操作オブジェクトのstartメソッドを呼び出す必要があります。

于 2012-07-10T09:55:35.620 に答える