我想检查pdf文件是否已更改,如果已更改,我想更新相应的视图。我不知道将后台进程用作线程或作为NSOperation来执行此任务是否更合适。苹果文档说:“非常适合NSOperation的任务示例包括网络请求,图像调整大小,文本处理或其他任何可产生关联状态或数据的可重复,结构化,长期运行的任务。但只需将计算包装到对象中即可。没有一点监督就做不了多少”。

另外,如果我从文档中正确理解,则一旦启动线程就无法在其执行期间停止,而NSOperation可能会暂停或停止,并且它们也可能依赖于依赖项来等待其他任务的完成。

此任务的工作流程应与以下图表大致相同:

Task workflow

最佳答案

发送类型为.write的通知后,我设法使处理程序正常工作。例如,如果我监视一个* .txt文件,那么一切都会按预期进行,并且我只会收到一个通知。但是我正在监视由pdflatex从终端生成的pdf文件,因此我收到了“ .write”近15条通知。如果我更改为“ .attrib”,则会收到3条通知。我只需要调用一次处理程序,而不要调用15或3次。您是否知道我该怎么办或无法使用派遣源?也许有一种方法只能执行一次dispatchWorkItem?

关于swift - 后台进程作为NSOperation或线程来监视和更新文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48347939/

10-12 05:42