일부 프로세서 집약적 인 작업을 수행하기 위해 배경 작업자를 돌보는 것보다 클래스가 있습니다. 백그라운드 작업자는 전체 클래스에 대해 전역으로 선언 된 몇 개의 문자열을 읽습니다. 해당 문자열을 잠글 필요가 있습니까? backgroundworker는 문자열을 쓰지 않으며 클래스의 생성자에 설정된 일부 디렉토리 위치를 나타내며 생성자 다음에 클래스에 의해 거의 작성되지 않습니다 (백그라운드 작성자가 작성하지 않은 경우). 따라서 이 가능합니다. 백그라운드 작업자가 주 클래스 객체에 의해 쓰여지는 것처럼 문자열을 읽을 수는 있지만 매우 희박합니다. 하지만 두 작업 (백그라운드 작업자가 읽은 작업과 기본 클래스가 작성한 작업)이 어쨌든 문자열 리터럴의 기본 작업이 아닐까요?글로벌 문자열을 읽기 전에 잠글까요?
감사합니다, 로버트
편집 : 문자열 (즉 내 애플 리케이션에 큰 문제가되지 않을 것) 날짜 또는 아무것도에서 것에 대해 걱정하지 않는다, 내가 더 걱정 "객체가 다른 곳에서 사용 중"이라는 예외를 얻는 것에 대해.
이 코드는 스레드로부터 안전하지 않습니다 :'aString [aString.Length-1]'. 문자열은 변경할 수 없기 때문에 문자열에 대한 참조가 불변이라는 것을 의미하지는 않습니다. –
실제로 좋은 지적입니다. – Joey
뻔뻔한 플러그 : http://devnonsense.blogspot.com/2009/11/immutable-data-is-thread-safe.html –