// ******************************************************************** // Public Methods // ******************************************************************** #region Public Methods /// <summary> // Constructor. Initializes class fields. /// </summary> /// <param name="minimumDistance"></param> public ClosestPointPicker(Size minimumDistance, Dispatcher dispatcher) { this._minimumDistance = new Rect(minimumDistance); _dispatcher = dispatcher; _points = new List <PointAndPrimitive>(); _mousePosQueue = new BlockingCollection <PointAndBounds>(); Thread thread = new Thread(new ThreadStart(() => { foreach (PointAndBounds mousePosIter in _mousePosQueue.GetLatestConsumingEnumerable()) { MouseMoved(mousePosIter.Point, mousePosIter.Bounds); } })); thread.IsBackground = true; thread.Start(); }