1

我在暂停当前正在执行的任务时遇到问题,我试图设置NSOperationQueue setSuspended=YES暂停和setSuspended=NO恢复进程。

根据苹果文档 ,我不能暂停已经执行的任务。

如果要暂时停止操作的执行,可以使用 setSuspended: 方法暂停相应的操作队列。暂停队列不会导致已经执行的操作在其任务中间暂停。它只是防止新操作被安排执行。您可能会暂停队列以响应用户暂停任何正在进行的工作的请求,因为期望用户最终可能希望恢复该工作。

如果互联网不可用,我的应用程序需要暂停上传操作的时间,并在互联网可用后最终恢复相同的操作。有什么解决方法吗?或者我只需要从零开始当前正在执行的任务?

4

2 回答 2

1

您是否可以恢复或暂停操作队列不是您的问题......如果它像您想象的那样工作,当您重新为 TCP 连接提供服务时,它很可能处于糟糕的状态,它可能已经超时,远程关闭......您将想要找出您的服务器支持的内容并使用 REST(或类似)服务的部分来恢复在全新连接上停止的上传。

如果你还没有,把它打印出来在你的立方体的墙上,为你的家人制作 T 恤……也许把它添加为屏幕保护程序?

于 2013-03-26T14:20:34.430 回答
1

我认为你需要从零开始。否则会出现两个问题。如果您恢复当前的上传,您不能保证您不会错过任何数据包。同时如果连接时间过长,服务器可能会因为操作不完整而删除您之前上传的数据。

于 2013-03-26T14:13:35.490 回答