System.Threading.SemaphoreSlim.Release C# (CSharp) Méthode

Release() public méthode

public Release ( ) : int
Résultat int
		public int Release ()
		{
			return Release(1);
		}
		

Same methods

SemaphoreSlim::Release ( int releaseCount ) : int

Usage Example

        private const int GameCacheDuration = 43200; // 12 hours

        public async Task<GameDetails[]> ParallelLoadGames(IEnumerable<int> gameIds)
        {
            GameDetails[] results;
            var tasks = new List<Task<GameDetails>>();
            using (var throttler = new SemaphoreSlim(5))
            {
                foreach (var gameId in gameIds)
                {
                    await throttler.WaitAsync();
                    tasks.Add(Task<GameDetails>.Run(async () =>
                    {
                        try
                        {
                            Debug.WriteLine("Loading {0}...", gameId);
                            return await this.LoadGame(gameId, true);
                        }
                        finally
                        {
                            Debug.WriteLine("Done with {0}...", gameId);
                            throttler.Release();
                        }
                    }));

                }
                results = await Task.WhenAll(tasks);
            }
            return results;
        }
All Usage Examples Of System.Threading.SemaphoreSlim::Release