2016-04-04 9 views
1

私はC#で新しく、いくつかの設定を保存したかったのです。私のアプリケーションは複数のインスタンスを実行できる必要があります。したがって、user.configファイルへの複数の同時書き込みの可能性があります。設定ファイルが壊れてしまいます。したがって、保存時にファイルレベルのロックがあるかどうかは疑問です。ファイルレベルのロックProperties.Settings

.Saveのソースコードを調べようとしましたが、これはインターフェイスコールIInternalConfigHost.OpenStreamForWritingに沸っているようです。しかし、それは私が簡単にこの質問に答えることができないインタフェースです。

多少の言い回しが更新されました。

user.configファイルが原因自分のアプリケーションの複数のインスタンスから、それにはいくつかの同時書き込みに破損ことができれば基本的に私は疑問に思って。

+0

あなたの質問が正しいかどうかわかりません... 1つのファイルから複数のインスタンスを読み込んでも問題はありませんが、一度に1つしか書き込みアクセスできません。 – Breeze

+0

申し訳ありませんが、あなたは私の質問にかなり答えました。いくつかのプログラムは一度に書き込みアクセス権を持つことができると考えました。 – Jerry

答えて

1

あなたのプログラムの2つの以上のインスタンスが同じコンフィギュレーション・ファイルに書き込みしようとした場合、あなたが何ができるか.Save

を呼び出している間、あなたが例外を取得するには、複数のインスタンスからのアクセスを同期するためにMutex Classを使用しています。 this answerを正しく実行する方法について確認できます。

はしかし、あなたが考える必要がある一つのことがある:あなたのインスタンスのいずれかが設定ファイルを更新した場合、他の人に通知し、一貫性のある動作を提供するために、それをリロードする必要がありますか?

+0

これは、ファイル書き込みの問題を解決するための答えです。更新を通知するためのものです。はい、私はそれが必要です。しかし、それは別の話です。 – Jerry

0

mutexロックオブジェクトを使用できます。 マルチスレッドとマルチプロセスの間で共有オブジェクトへの同時アクセスを防止します。

次のページを参照してください。 http://derpturkey.com/c-cross-process-synchronization/

関連する問題