我是C#的新手,想要保存一些设置。我的应用程序必须能够运行多个实例,因此可能会同时写入user.config
文件。导致配置文件损坏。因此,我想知道在保存它们时是否存在任何文件级锁定。
试图查看.Save
的源代码,这似乎已经沸腾到接口调用IInternalConfigHost.OpenStreamForWriting
。但这是一个界面,所以我不能轻易回答这个问题。
稍微更新了措辞。
基本上我想知道user.config文件是否会因为我的应用程序的多个实例同时写入多个文件而导致其损坏。
答案 0 :(得分:1)
如果程序的两个或多个实例尝试写入同一配置文件,则在调用.Save
时会出现异常
您可以使用Mutex Class来同步多个实例的访问权限。您可以查看this answer如何正确执行此操作。
但是,您需要考虑的一件事是:如果您的某个实例更新配置文件,是否应通知其他实例并重新加载以提供一致的行为?
答案 1 :(得分:0)
您可以使用互斥锁对象。 它可以防止simulataneouse在多线程和多进程之间访问共享对象。
参考以下页面。 http://derpturkey.com/c-cross-process-synchronization/