Отмена всех операций в OperationQueue - PullRequest
0 голосов
/ 09 апреля 2019

При отмене всех операций в очереди, как говорится в документации, некоторые операции все еще могут оставаться в очереди, что вполне нормально. Но скажем, что из 5 операций в очереди с maxConcurrentOperationCount = 1. Эта вторая операция не выполняется, и тогда я звоню cancelAllOperations(). Когда я проверяю очередь, внутри все еще остается одна операция. В приложении я потяну, чтобы обновить. Я хочу повторить процесс, но как насчет предыдущей операции? Я хочу повторно использовать ту же очередь. Есть предложения?

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Ну, даже установив isExecuting = false и isFinished = true, операции все еще были в очереди. Я снова переинициализировал очередь после отмены запросов. Таким образом, операции «удаляются», а очередь пуста.

0 голосов
/ 10 апреля 2019

Отмена - это не то, что удаляет операции из очереди.Единственное, что вызывает их удаление - это установка finished на true.Когда очередь видит, что finished перемещается в true, она удаляет операцию из очереди.Если операция все еще находится в очереди, возможно, ее finished не был установлен правильно.

...