IPropertyMapper 객체를 생성하는 싱글 톤 팩토리가 필요합니다. 팩토리에는 Func 대리자에 대한 참조를 보유하는 사전이 있습니다. 사전은 불변이고, 나는 단지 빠른 접근을 원한다. 이 코드는 스레드로부터 안전합니까? Create() 스레드를 안전하게 호출하고 있습니까?싱글 톤 팩토리 멤버 함수 스레드 안전성
는클래스 정의 :
public sealed class PropertyMapperFactory
{
private static readonly PropertyMapperFactory _instance = new PropertyMapperFactory();
private readonly Dictionary<int, Func<TResult>> _handlers;
private PropertyMapperFactory() {
this._handlers = new Dictionary<...>();
this._setTimeHandler();
}
public static PropertyMapperFactory GetFactory() {
return _instance;
}
//Is this thread safe?
public IPropertyMapper Create(UnitSetting _units) {
return new PropertyMapper(this.handler[0])
}
안녕하세요 아담, 답변 해 주셔서 감사합니다. 내 대리자 함수는 다음과 같이 정의됩니다. Func
@Amit : 관련없는 별도의 질문이있는 경우 별도의 질문을 게시하십시오. 의견에서 관련없는 질문을하지 마십시오. – Timwi
@Timwi : 안녕하세요, 그들은 내 해결책과 관련이 있습니다. 나는 스레드 안전성을 전제로하여 위임자의 해시를 보유한 싱글 톤에 대한 질문을 계속하고있다. 위의 코드는이를 전달할 수는 없지만 handler [0]에 대한 참조는 ProtonyManager에서 설정되며, 이는 Singleton의 Create() 함수를 호출 한 스레드가 사용합니다. – Amit