Медленное заполнение DataGridView - C#
Формулировка задачи:
Возникла проблема с заполнением. У меня есть dgv размером 80х255
Изначально нужно заполнить это счастье нулями, а потом изменить значение произвольной ячейки в каждой строке на 1 или -1.
Нулями заполняет, однако долго. Я поставил dataGridView1.Update(); чтобы увидеть процесс заполнения, оказалось что на заполнение строки в 80 ячеек уходит около 1 секунды.
Итого на заполнение 255 строк затрачивается около 3 минут..
Нельзя ли как-то ускорить этот процесс?
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 80; i++)
dataGridView1.Columns.Add("A" + Convert.ToString(i + 1), "A" + Convert.ToString(i + 1));
dataGridView1.Rows.Add(255);
for (int j = 0; j < 255; j++)
dataGridView1.Rows[j].HeaderCell.Value = "X" + Convert.ToString(j + 1);
/*
*/
}
private void button2_Click(object sender, EventArgs e)
{
for (int j = 0; j < dataGridView1.RowCount; j++)
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
dataGridView1[i,j].Value = 0;
dataGridView1.Update();
}
}
private void button3_Click(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.RowCount; i++)
{
while (val == 0) ;
val = rand.Next(-1, 1);
dataGridView1[i, rand.Next(0, 80)].Value = val;
dataGridView1.Update();
}
}Решение задачи: «Медленное заполнение DataGridView»
textual
Листинг программы
var global_start = DateTime.Now;
for (int j = 0; j < dataGridView1.RowCount; j++)
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
dataGridView1[i,j].Value = 0;
}
var global_end = DateTime.Now;
var res= global_end - global_start;
dataGridView1.Update();