private void ProcessingThread() { while (running) { double[] tmpList = new double[100]; for (int i = 0; i < 100; i++) { tmpList[i] = rnd.NextDouble(); } this.Dispatcher.BeginInvoke(new Action(() => { PointCloud.Clear(); PointCloud.AddRange(tmpList); }), System.Windows.Threading.DispatcherPriority.Background); Thread.Sleep(50); } }