1

我对 C# 很陌生,想保存一些设置。我的应用程序必须能够运行多个实例,因此有可能同时对user.config文件进行多次写入。导致配置文件损坏。因此我想知道保存时是否有任何文件级锁定。

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

稍微更新了措辞。

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

4

2 回答 2

1

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

您可以做的是使用Mutex 类来同步来自多个实例的访问。您可以查看此答案以了解如何正确执行此操作。

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

于 2016-04-04T11:14:33.043 回答
0

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

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

于 2016-04-04T11:14:10.367 回答