2011-12-20 168 views
2

我有一個NSOperation用於複製文件。我使用write()複製文件,然後在每個write()之間有能力「暫停」副本。 但是我不知道如何:NSOperation:如何暫停和恢復

  • 告訴操作,它應該暫停(從UI主線程)
  • 暫停操作(我認爲,「雖然(isPaused得到== YES)」是不正確的選擇
  • 告訴操作繼續

感謝您的幫助

+0

您可以使每個操作爲每個文件塊創建另一個操作。每個複製塊操作都將依賴於它之前的操作,並且複製整個文件操作將創建一個操作隊列並將所有複製塊操作放入其中。當您暫停複製文件操作時,它將暫停其複製塊操作隊列。 – 2011-12-22 17:18:08

回答

2

您可以用旗語做到這一點,但不是使用信號來控制ACCE ss到一段代碼(即獲得鎖定,使用資源,釋放鎖定模型),而是將其視爲門 - 獲取,測試條件/塊,釋放並繼續。

NSCondition會給你一個高級的信號量。在總覽中,步驟3是「測試是否應該暫停」,並且步驟4變爲「不,因此不做任何事情」。