2011-12-25 5 views
0

설정을 파일로 저장하는 방법이 있습니다. dateTimePicker의 값이 변경되면이 메소드가 호출됩니다. 하지만 Form_Load로드 설정 - "파일에서 값을 읽고 dateTimePicker 함께 할당 할 수 있지만이 호출 메서드는 save_settings (couse 값이 변경됨). 그리고이 순간에 문제는 파일이 프로그램에 의해 열려 있습니다 -> 값을 읽고 프로그램이 파일 변경 내용을 쓰고 싶습니다 ... 어떻게해야합니까?C# 설정을 읽는 동안 설정 저장

+0

문제를 해결하기 위해 현재 가지고있는 코드를 확인해야합니다.이 문제가있는 코드의 붙여 넣기를 복사하십시오. – MethodMan

답변

1

중요한 부분이 있다고 생각합니다. 이 문제를 해결할 수있는 방법은 많습니다. 한 가지 방법은 파일 저장과 관련된 Lock 문을 사용하는 것입니다. 이 방법은 한 스레드가 다른 스레드가 완료된 후에 기다려야합니다. 그러나 귀하의 질문을 이해에서 나는 그 문제는 당신의 desing과 생각합니다. 나는 당신이 동시에 읽고 쓰려고한다는 것을 이해합니다. 어쩌면 글로벌 bool 변수 isToSave를 선언해야합니다. 그것은 당신이 언제 구할 수 있는지 알려줄 것입니다. 파일로 작업 할 때 using 문을 사용하여 파일을 해제하는 것을 잊지 마십시오. 핸들.

+0

변수를 사용하여 검사했습니다. 감사합니다 :) – sczdavos

0

어떤 종류의 플래그를 사용하십시오. 설정을 읽을 때 설정하고 finally 블록에서 설정을 해제하십시오. 플래그가 설정되면 ValueChanged에 대한 호출을 무시하십시오. OnLoad에 config를로드 중이므로 기본 UI 스레드에 있고 메시지 펌프가 현재 펌핑 중이 아니기 때문에 dateTimePicker의 값 변경에 대한 다른 이유가 없습니다.

+0

또한/완료 StreamReader/StreamWriter 개체를 무료/destroy.v 참조 @ 그레고리의 대답 – MethodMan