2013-08-29 3 views
0

파일에서 settings을 가져 오는 서버 programm가 있습니다. 나는 내 자신의 클래스에서 동적으로 할당 된 QReadWriteLock 클래스를 사용하여 읽는 동안 잠금을 시도하고 main()에있는 클래스 객체의 소멸자에서 무료 저장소로 릴리스했습니다. 내 전공은 그것을 잠그는 것이었다. 두 번째로 .exe 프로그램을 실행하면 액세스 할 수 없으므로 Singleapplication 컴파일 할 때 아무런 오류가 표시되지 않지만 두 번째 .exe에서 내 서버를 시작할 때 첫 번째 기능) 또한 설정에 액세스 할 수 있습니다. 내 실수는 무엇입니까? 아니면이 경우 QReadWriteLock을 활용하지 않을 것인가? 스레드와 관련이 있기 때문입니까? 실행 파일을 분리하지 않으시겠습니까?QReadWriteLock의 작동 방식

+0

QFile 또는 QSettings에서 설정을 읽습니까? 예 QReadWriteLock은 단일 실행 파일에서 작동합니다. 쓰기 모드로 설정 파일을 열면 다른 실행 파일이 쓰기 모드에서 설정을 다시 열지 못하게 할 수 있습니다. – Kunal

답변

0

QReadWriteLock은 단일 응용 프로그램 내에서 생산자/소비자 유사 스레드를 동기화하는 데 사용됩니다. 동일한 실행 파일을 두 번 이상 시작하지 않으려는 경우 PID 파일이나 다른 것을 사용하십시오. 다른 옵션은 QtSolutions-plugin의 QtSingleApplication 코드 인 Qt: Best practice for a single instance app protection을 사용하는 것입니다.