首页 > 代码库 > 提供者模式:提供者的实例化加锁
提供者模式:提供者的实例化加锁
private static void LoadProviders() { // providers are loaded just once if (null == _providers) { // Synchronize the process of loading the providers lock (SyncLock) { // Double confirm that the _provider is still null. if (null == _provider) { try { // Reads the webconfig file corresponding node. DataProviderSection section = (DataProviderSection) WebConfigurationManager.GetSection("system.web/dataProviderService"); _providers = new DataProviderCollection(); // Creates provider instance, and invokes ProviderBase‘s Initialize function. ProvidersHelper.InstantiateProviders(section.Providers, Providers, typeof(DataProvider)); // Gets the default in the collection. _provider = Providers[section.DefaultProvider]; } catch { throw new ProviderException("Can‘t create instance"); } } } } }
提供者模式:提供者的实例化加锁
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。