To reproduce: please run the application provided in the ticket. You will notice that RadGridView stops updating. Workaround: use MethodInvoker for the update operation: private void readTicks() { DateTime now = DateTime.Now; Tick previouse = null; for (int i = 0; i < lines.Length; i++) { if (canceled) return; var t = new Tick(); try { try { JsonConvert.PopulateObject(lines[i], t); } catch { continue; } var c = contracts[t.ContractId]; c.Row[(int)t.TickType] = t; c.CurrentTickSetNr++; if (this.radGridView1.InvokeRequired) { this.radGridView1.Invoke(new MethodInvoker(delegate { c.Fire(t); })); } else { c.Fire(t); } previouse = t; OnTick?.Invoke(c.ConId, i); } catch (Exception e) { Debug.WriteLine(e.Message); } } OnDone?.Invoke(this, new EventArgs()); }