public void Enqueue(BlockCoordinates coordinates) { /* if (!Queue.Contains(coordinates)) * { * Queue.Enqueue(coordinates);*/ ChunkQueues.AddOrUpdate((ChunkCoordinates)coordinates, chunkCoordinates => { var newQueue = new ConcurrentQueue <BlockCoordinates>(); newQueue.Enqueue(coordinates); return(newQueue); }, (chunkCoordinates, queue) => { if (!queue.Contains(coordinates)) { queue.Enqueue(coordinates); } return(queue); }); // } }