I'm going to fill my RadGridView by using multiple threads. My code is as follows but is not working. How can I do this?
BackgroundWorker[] workers =
new
BackgroundWorker[2];
private
void
frmTest_Load(
object
sender, EventArgs e)
{
for
(
int
col = 0; col < 300; col++)
grid.Columns.Add(
"Col "
+ col.ToString());
for
(
int
r = 0; r < 2; r++)
{
workers[r] =
new
BackgroundWorker();
workers[r].DoWork +=
new
DoWorkEventHandler(Worker_DoWork);
workers[r].RunWorkerCompleted +=
new
RunWorkerCompletedEventHandler(Worker_RunWorkerCompleted);
workers[r].RunWorkerAsync(grid.MasterView);
}
}
void
Worker_DoWork(
object
sender, DoWorkEventArgs e)
{
var rnd =
new
Random();
var info = (GridViewInfo)e.Argument;
var row =
new
GridViewDataRowInfo(info);
int
i = 0;
foreach
(GridViewCellInfo cell
in
row.Cells)
{
cell.Value = i++;
cell.Style.NumberOfColors = 1;
cell.Style.BackColor = Color.FromArgb(rnd.Next(0, 255), rnd.Next(0, 255), rnd.Next(0, 255));
cell.Style.CustomizeFill =
true
;
}
e.Result = row;
}
void
Worker_RunWorkerCompleted(
object
sender, RunWorkerCompletedEventArgs e)
{
grid.Rows.Add((GridViewDataRowInfo)e.Result);
}