public static Protocol GetProtocolThreadSafe(int type) { Protocol protocol = null; lock (RegisterProtocolFactory) { ProtocolFactory factory = null; if (RegisterProtocolFactory.TryGetValue(type, out factory)) { protocol = factory.Get(); } } return(protocol); }