私はココアにダウンロードマネージャーを実装しています。ユーザーは複数のダウンロードリクエストを追加でき、リクエストマネージャーはリクエストの進行状況をパネルに表示します。キュー内のリクエストの一時停止/再開について問題が発生しました。
簡単にするために、最大同時操作数が1であると仮定して、順序:1、2、3、4、5でいくつかの要求を追加します。中断されない場合、リクエストは1から5まで順番にダウンロードされます。リクエスト1を一時停止すると、リクエスト2は引き続きダウンロードされます。その間、リクエスト1を再開します。したがって、リクエスト2が終了した後、リクエスト1をリクエスト3の前に続行できることを願っています。
ここでの問題は次のとおりです。一時停止した単一のリクエストの場合、リクエストは実際にはキャンセルされました。リクエストを再開すると、新しいリクエストが初期化されてから開始されました。操作キューで[self cancel]
、次のリクエストを開始できるようにリクエストが一時停止された場合に送信しました。ただ、再開したらどうしたらいいのかわかりません。キャンセルされたリクエストを再びキューに追加することはできません。新しいものを作成してキューに追加した場合、以前のように優先順位をどのように約束できますか?
それを行う方法のヒントを教えてください。
ありがとう