2011-12-25 10 views
0

設定をファイルに保存する方法があります。このメソッドは、dateTimePickerの値が変更された場合に呼び出されます。しかし、私はForm_Loadの読み込み設定を持っています - >私はファイルから値を読み込み、dateTimePickerでそれを割り当てますが、この呼び出しメソッドsave_settings(couse値が変更されました)。そして、この瞬間にファイルがプログラムによって開かれているという問題があります - >値を読み、プログラムがファイルの変更を書きたいのですが... どうすればいいですか?c#設定を読み込み中に設定を保存する

+0

問題を解決するために現在持っているコードを参照する必要があります。この問題が発生しているコードに貼り付けてコピーしてください。 – MethodMan

答えて

1

私はあなたがクリティカルセクションを持っていると思います。この問題に対処する方法はたくさんあります。 1つの方法は、ファイル保存の周りにLockステートメントを置くことです。このようにして、あるスレッドは、別のスレッドが終了した後に待機する必要があります。しかし、あなたの質問を理解することから、私は問題はあなたのdesingと思う。私はあなたが同時に読み書きしようとしていることを理解しています。たぶん、グローバルbool変数isToSaveを宣言する必要があります。それはあなたがいつ保存できるかを示します。ファイルを操作するときは、文を使用してファイルを解放することを忘れないでください。 ハンドル。

+0

変数によるチェックを使用しました。ありがとう:) – sczdavos

0

何らかのフラグを使用します。設定を読み始めるときに設定し、finallyブロックで設定を解除します。フラグが設定されている場合は、ValueChangedへの呼び出しを無視します。 OnLoadに設定をロードしているので、メインのUIスレッドでメッセージポンプがポンピングしていないため、dateTimePickerの値が変更される理由は他にありません。

+0

また、完了時にStreamReader/StreamWriterオブジェクトをフリー/破棄します。@リファレンス@グレゴリーの答え – MethodMan

関連する問題