文件级锁定 Properties.Settings

File level locking Properties.Settings

我是 C# 的新手,想保存一些设置。我的应用程序必须能够 运行 多个实例,因此有可能多个同时写入 user.config 文件。导致配置文件损坏。所以我想知道在保存的时候有没有文件级别的锁定。

试图查看 .Save 的源代码,这似乎归结为接口调用 IInternalConfigHost.OpenStreamForWriting。但它是一个接口,所以我不能轻易地自己回答这个问题。

稍微更新了措辞。

基本上我想知道 user.config 文件是否会因为我的应用程序的多个实例同时写入而损坏。

您可以使用互斥锁对象。 它防止在多线程和多进程之间同时访问共享对象。

参考下一页。 http://derpturkey.com/c-cross-process-synchronization/

如果您的程序的两个或多个实例尝试写入同一个配置文件,您将在调用 .Save

时遇到异常

您可以使用 Mutex Class to synchronize access from multiple instances. You can check this answer 了解正确操作方法。

但是,您需要考虑的一件事是:如果您的一个实例更新了配置文件,是否应该通知其他实例并重新加载它以提供一致的行为?