private TServiceInterface GetEnhancedService() { var enhancedService = factory.CreateEnhancedServiceInternal(false); CreatedServices++; return(enhancedService); }
private TService GetInitialisedService(int threads, TService enhancedService = null) { if (enhancedService == null) { lock (servicesQueue) { if (createdServicesCount < poolSize) { enhancedService = factory.CreateEnhancedServiceInternal(false); createdServicesCount++; } } } enhancedService = enhancedService ?? servicesQueue.Dequeue(); enhancedService.ReleaseService = () => ReleaseService(enhancedService); enhancedService.FillServicesQueue(Enumerable.Range(0, threads).Select(e => GetCrmService())); return(enhancedService); }