Во-первых, вы не можете получить доступ к элементам управления WinForms вне потока GUI. Так что вам нужно исключить Parallel
звонки.
Как ни странно, DataGridView
не имеет BeginUpdate/EndUpdate
. Но вы можете приостановить рисунок:
dataGrid_searchEntryList.SuspendDrawing();
//Update multiple cells here
dataGrid_searchEntryList.ResumeDrawing();
Это, по крайней мере, устраняет чрезмерное рисование.
Стоит отметить, что если это связано с данными, есть гораздо лучший способ сделать это. Но я предполагаю, что это не так, как вы получаете доступ к данным через DataGridView
.
Наконец, ваш код может быть упрощен до следующего:
foreach(var row in dataGrid_searchEntryList.Rows.Cast<DataGridViewRow>())
{
row.Cells[0].Value = checkBox_all.Checked;
}