取消对OperationQueue的所有操作

时间:2019-04-09 13:36:43

标签: swift nsoperationqueue

如文档所述,当取消队列中的所有操作时,某些操作可能仍留在队列中,这很好。但是,让我们说从ParameterConversionConfiguration() .AddReturnConversion(fun (values: double[]) -> Array.map (string >> box) values )开始的5个操作中。第二项操作失败,然后我致电maxConcurrentOperationCount = 1。当我检查队列时,里面仍然有一个操作。在应用程序中,然后我想刷新以重复该过程,但是先前的操作又如何呢?我想重用相同的队列。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

取消不是从队列中删除操作的内容。触发删除操作的是将操作的finished设置为true。一旦队列看到finished移到true,它将从队列中删除该操作。如果某个操作仍在队列中,则可能未正确设置其finished

答案 1 :(得分:0)

甚至设置isExecuting = falseisFinished = true的操作仍然在队列中。我所做的是在取消请求后再次重新初始化队列。这样,操作被“删除”,队列为空。