gpt4 book ai didi

objective-c - 是否写入文件 :atomically: blocks asynchronous reading?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:13:00 25 4
gpt4 key购买 nike

在使用我的应用程序时,有几次我在后台处理一些大数据。 (在用户需要时准备好。某种索引。)当这个后台进程完成时,它需要将数据保存在缓存文件中,但由于这真的很大,所以需要几秒钟。

但同时用户可能会打开一些显示从磁盘加载的图像和文本的对话框。如果在保存后台进程数据的同时发生这种情况,则用户界面需要等待保存过程完成。 (这是不希望的,因为用户必须等待 3-4 秒,直到从磁盘加载图像和文本!)

所以我正在寻找一种方法来限制写入磁盘。我想将数据分成 block ,并在保存不同 block 之间插入一个短暂的延迟。在此延迟中,用户界面将能够加载所需的文本和图像,因此用户不会意识到延迟。

目前我正在使用 [[array componentsJoinedByString:'\n'] writeToFile:@"some name.dic"atomically:YES]。这是非常高级的解决方案,不允许任何自定义。如何在不将所有数据一次性保存的情况下将大量数据实现到一个文件中?

最佳答案

Does writeToFile:atomically: blocks asynchronous reading?

没有。这就像写入一个临时文件。成功完成后,将临时文件重命名为目标(如果存在,则替换目标中预先存在的文件)。

您应该考虑如何分解数据,这样速度才不会那么慢。如果全部按字符串/行划分并且需要几秒钟,那么划分数据库的简单方法是按第一个字符。当然,根据您访问、搜索和更新索引/数据库的方式,可能会想到更好的解决方案。

…inserting a short delay between saving the different chunks. In this delay, the user interface will be able to load the needed texts and images, so the user will not recognize a delay.

不要。只需自己实现原子写入的移动/替换(在索引和写入期间写入临时文件)。然后,您的应用可以显式序列化读取和写入命令,以便快速、一致和正确地访问这些共享资源。

关于objective-c - 是否写入文件 :atomically: blocks asynchronous reading?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13324473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com