2013-03-26 135 views
1

我有問題掛起當前正在執行的任務,我試圖設置NSOperationQueuesetSuspended=YES暫停和setSuspended=NO恢復過程。按照apple docs我不能掛起已經執行的任務。暫停正在執行的任務NSOperationQueue

如果您想暫時停止執行操作,可以使用setSuspended:方法掛起相應的操作隊列。暫停隊列不會導致已執行的操作在其任務中間暫停。它只是防止新的操作被安排執行。您可能會暫停隊列以響應用戶請求暫停任何正在進行的工作,因爲預期用戶可能最終想要恢復該工作。

我的應用程序需要暫停上網操作的時間,以防萬一互聯網不可用,並最終在互聯網可用時恢復相同的操作。有沒有解決這個問題的方法?或者我只需要從零開始執行當前任務?

+1

如果您的上傳目標支持上傳恢復(例如網絡服務器),您可以在連接失敗時保存上次上傳字節的偏移量,並在連接再次可用時從該位置重新啓動 – 2013-03-26 11:00:28

回答

1

我認爲你需要從零開始。否則會出現兩個問題。如果你恢復目前的上傳,你不能保證你沒有錯過任何數據包。同時,如果長時間連接可用,服務器可能會因爲操作不完整而刪除您之前上傳的數據。

1

是否可以恢復或暫停操作隊列在這裏不是你的問題... 如果它像你想象的那樣工作,當你回到服務TCP連接時它可能(而且不)非常好的狀態,它可以超時,遠程關閉... 你會想知道你的服務器支持什麼,並使用REST(或類似的)服務的部分來恢復一個品牌新的連接。

如果你還沒有,打印出this,並把它放在你的立方體的牆上,爲你的家人制作T恤衫......也許把它作爲屏幕保護程序添加?