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
@ティムウィー:ちょっとティム、彼らは私の解決策に関連している。私はデリゲートのハッシュを保持しているシングルトンを使ってスレッドセーフティを前提にして質問を続けています。上記のコードはそれを伝えないかもしれませんが、handler [0]への参照はProperyManagerで設定されます。これは、シングルトンのCreate()関数を呼び出したスレッドによって使用されます。 – Amit