NSOperation:如何暂停和恢复

时间:2011-12-20 06:46:25

标签: objective-c multithreading cocoa nsoperation

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

  • 告诉操作它应该暂停(来自UI主线程)
  • 暂停操作(我认为“while(isPaused == YES)”不是正确的选项
  • 告诉操作继续

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

你可以用信号量做到这一点;但不是使用信号量来控制对代码段的访问(即获取锁,使用资源,释放锁模型),而是将其视为门 - 获取,测试条件/块,释放和继续。

NSCondition会给你一个高级信号量。在概述中,步骤3是“测试我是否应该暂停”和步骤4& 5成为“不,所以什么都不做”。