I am getting an unusual, non-deterministic exception when retrieving large numbers of CellValues one after the other.
The exception I get is a "Hashtable Load factor too high" exception, called from a Hashtable.insert somewhere in the syncfusion grid code.
I am guessing that syncfusion uses hashtables to cache the indexed CellValues, and these hashtables are sometimes (non-deterministically) overloaded when I access too many different CellValues too quickly.
Has anyone else had this problem?
I have managed to program around the error at the moment (separately storing the data in a two dimensional array, but this does have a high memory overhead), but I would like for a way to pull an entire row of cellvalues out of the table at a time, instead of accessing individual cells.
Alternatively, if there was a way of accessing cell values without causing them to be cached, it would be handy to know what it is.
Using an indexer to retrieve grid[row, col].CellValue triggers events (like QueryCellInfo). If this is a GridControl where the data is stored in the grid, you can avoid triggerring these events (which slow things down) by accessing the GridData directly.
GridStyleInfoStore store = grid.Data[rowIndex, colIndex];
if (store != null)
style = new GridStyleInfo(store);
style = new GridStyleInfo();
object cellValue = style.CellValue;