0

대량으로 사용자를 생성하는 프로그램을 작성 중입니다. 약 5 초 동안 블록 작성의 일부인 조작이 있습니다.이를 해결하기 위해 스레드를 만들고 스레드에 모든 것을 넣을 것입니다. 풀.은 System.DirectoryServices.AccountManagement.GroupPrincipal 스레드 안전합니까?

제 질문은 스레드 외부에서 원칙을 만들고 스레드에 그룹 원칙을 전달하고 group.Members.Add(u)group.Save()으로 전화하면 문제가 될 수 있습니까? 각 스레드 내부에서 새로운 그룹 프린시 펄을 생성하는 것이 더 좋을까요? MSDN에서

답변

0

는 :

이러한 유형의 멤버 (Visual Basic의 경우 Shared) 모든 공용 static 스레드로부터 안전합니다. 모든 인스턴스 멤버가 스레드로부터 안전하다는 보장은 없습니다.

설명서에는 매우 작은 메모가 있습니다. "스레드 안전성"과 동시 액세스 제어 방법을 결정하는 것은 프로그래머가 결정합니다.

1

두 개의 스레드가 동일한 컬렉션 인스턴스에서 작동 할 때마다 안전하지 않습니다. UI가 차단되지 않도록 단일 배경 스레드 만 사용하는 경우 백그라운드 스레드에 그룹을 만들어 독점적으로 사용하십시오. Active Directory를 동시에 실행하기 위해 여러 스레드를 생성하여 그룹에 사용자를 추가하는 것이 계획이라면, 도움이되지 않을 것입니다.

관련 문제