private void CreateDot() { Color color = _threadManager.GetThreadColor(Thread.CurrentThread); while (true) { if (_requests.GetCapacity() >= 500) { Thread.Sleep(100); continue; } var random = new ThreadLocal <Random>(() => new Random(Guid.NewGuid().GetHashCode())); var data = random.Value.NextDouble(); decimal x = (decimal)random.Value.NextDouble();; decimal y = (decimal)random.Value.NextDouble(); Pixel pixel = new Pixel(x, y, color); _requests.Add(pixel); Thread.Sleep(100); } }