我正在用cocoa实现一个下载管理器。用户可以添加多个下载请求,请求管理器将在面板中显示请求的进度。我遇到了队列中请求的暂停/恢复问题。
为了简单起见,假设最大并发操作计数为1,我按顺序添加了几个请求:1、2、3、4、5。如果没有中断,则按顺序从1到5下载请求。假设我暂停请求1,请求2应该继续下载。在此期间,我恢复了请求1。因此,在请求2完成之后,我希望请求1可以在请求3之前继续。
这里的问题是:对于我暂停的单个请求,该请求实际上已被取消。当我恢复请求时,一个新的请求被初始化,然后启动。在操作队列中,如果请求暂停,则发送[self cancel],以便启动下一个请求。但是,如果恢复了,我不知道该怎么办。已取消的请求不能再次添加到队列中。如果我创建了一个新的,并将其添加到队列中,我如何才能像以前一样保证优先级呢?
请给出如何做到这一点的提示。
谢谢
发布于 2012-12-12 13:38:58
目前我自己做了一个解决方案,使用:
ASIHttpRequest;waiting;waiting;添加时间来枚举数组以查看位于第一个位置的请求
https://stackoverflow.com/questions/12567429
复制相似问题