void ResetCachedData() { Concurrency.LockFreeUpdate(ref m_SortedVisibleColumns, Columns.SortedVisibleColumns.ToArray()); var lst = new BinarySortedList <float> (); float offset = 0; Columns.Where(col => col.Visible).ForEach(col => { lst.AddLast(offset); offset += col.Width; }); Concurrency.LockFreeUpdate(ref m_ColumnOffsets, lst); }