[英]Is TMemIniFile thread-safe?
用户正在收到间歇性错误“无法创建文件”C:... \\ Filename.ini“。无法对打开了用户映射部分的文件执行请求的操作。”
我无法找到有关此错误的更多信息,这有助于了解正在发生的事情。
TMemIniFile是线程安全的吗?
首先,我假设导致报告问题的特定线程配置是有多个TMemIniFile
实例,甚至可能在不同的进程中,同时从不同的线程保存。
TMemIniFile
不是线程安全的。 为了避免任何竞争条件,您需要编写(伪)代码,如下所示:
AcquireLock;
Try
ReadMemIniFileFromDisk;
ModifyMemIniFileInMemory;
WriteMemIniFileToDisk;
Finally
ReleaseLock;
End;
仅锁定文件操作是不够的,因为那样你可能会因为比赛而失去更改。 您必须锁定整个读/修改/写周期。
解
此错误消息是由AVG中的错误引起的。 显然,在其实时文件访问监控模式下,AVG以独占模式打开一些文件,防止其他人写入文件。
解决方法是将AVG配置为忽略此文件所在的文件夹。
谢谢,AVG! 我现在可以浪费2天的时间吗? :-)
感谢所有在这里回答的人。
汤姆
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.