我暂停正在执行的当前任务时遇到问题,我尝试将NSOperationQueue
setSuspended=YES
设置为暂停,并setSuspended=NO
设置为恢复该过程。
根据apple docs,我无法暂停已经执行的任务。
如果要暂停执行操作,可以使用setSuspended:方法挂起相应的操作队列。挂起队列不会导致已执行的操作在其任务中间暂停。它只是阻止计划执行新操作。您可以暂停队列以响应用户请求暂停任何正在进行的工作,因为期望用户最终可能希望恢复该工作。
我的应用程序需要在互联网不可用的情况下暂停上传操作的时间,并在互联网可用后最终恢复相同的操作。这有什么工作吗?或者我只需要从零开始当前正在执行的任务?
答案 0 :(得分:1)
我认为你需要从零开始。否则会有两个问题。如果您恢复当前上传,则无法确保不会丢失任何数据包。同时,如果连接在很长一段时间后可用,服务器可能会因为操作不完整而删除您之前上传的数据。
答案 1 :(得分:1)
您是否可以恢复或暂停操作队列不是您的问题... 如果它像您想象的那样工作(并且它没有)当您回到服务TCP连接时,它可能处于不良状态,它可能已经超时,远程关闭...... 您将需要了解您的服务器支持的内容,并使用REST(或类似)服务的各个部分来恢复在全新连接上停止上传。
如果还没有,请打印this并将其放在立方体的墙壁上,为家人制作T恤......也许可以将其添加为屏幕保护程序?