コード例 #1
0
        private TServiceInterface GetEnhancedService()
        {
            var enhancedService = factory.CreateEnhancedServiceInternal(false);

            CreatedServices++;
            return(enhancedService);
        }
コード例 #2
0
        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);
        }