0

엔터프라이즈 라이브러리의 데이터 액세스 응용 프로그램 블록을 사용하여 데이터베이스에 데이터를 삽입하기 위해 여러 개의 동시 백그라운드 프로세스를 실행하는 응용 프로그램이 있습니다. 각 백그라운드 스레드는 동일한 데이터베이스 인스턴스 이름을 전달하는 DatabaseFactory.CreateDatabase를 사용합니다. 나는이 스레드로부터 안전하지 않습니다 것을 찾는거야 내가 값이 스레드에 걸쳐 혼합하기 때문에 오류를 받고 있어요엔터프라이즈 라이브러리의 데이터 액세스를 사용할 때 스레드 안전성을 보장하는 방법

Microsoft.Practices.EnterpriseLibrary.Data.Database database = DatabaseFactory.CreateDatabase(this.DatabaseInstanceName); 
DbCommand commandObj = database.GetSqlStringCommand(statement); 

: 다음은 데이터베이스 및 명령 개체를 검색 한 코드입니다 다음. 스레드 안전성을 보장하기 위해이를 어떻게 처리해야합니까?

미리 감사드립니다.

답변

1

내 문제가 발견되었습니다. 스레드간에 혼합되는 값은 엔터프라이즈 라이브러리 데이터 액세스 개체 때문이 아니라 매개 변수를 저장하는 데 사용한 다른 개체 때문이었습니다. 실수로 각 스레드 내의 로컬 리소스 대신 전역으로 만들었습니다.

관련 문제