using System.Threading.Tasks;
using System.Collections.Concurrent;
public static void Main()
var collection = new ConcurrentBag<long>();
var idGenerator = new IdGenerator(1);
Parallel.For(0, 1000, _=> collection.Add(idGenerator.CreateId()));
Console.WriteLine(collection.Distinct().Count());