2011-12-20 153 views
2

我有一个NSOperation用于复制文件。我使用write()复制文件,然后在每个write()之间有能力“暂停”副本。 但是我不知道如何:NSOperation:如何暂停和恢复

  • 告诉操作,它应该暂停(从UI主线程)
  • 暂停操作(我认为,“虽然(isPaused得到== YES)”是不正确的选择
  • 告诉操作继续

感谢您的帮助

+0

您可以使每个操作为每个文件块创建另一个操作。每个复制块操作都将依赖于它之前的操作,并且复制整个文件操作将创建一个操作队列并将所有复制块操作放入其中。当您暂停复制文件操作时,它将暂停其复制块操作队列。 – 2011-12-22 17:18:08

回答

2

您可以用旗语做到这一点,但不是使用信号来控制ACCE ss到一段代码(即获得锁定,使用资源,释放锁定模型),而是将其视为门 - 获取,测试条件/块,释放并继续。

NSCondition会给你一个高级的信号量。在总览中,步骤3是“测试是否应该暂停”,并且步骤4变为“不,因此不做任何事情”。