c# DataGridView 잔기술들 1

멀티뜨레드로 셀 값 쓰기

메인 뜨레드에서 DataGridView를 만들고 메인 뜨레드 아닌 뜨레드들에서 DataGridView의 셀 값을 쓸 때에는 델리게이트를 이용하지 않아도 된다.

private void Form1_Load(object sender, EventArgs e)
{
    dataGridView1.Columns.Add("column 1", "column 1");
    dataGridView1.Rows.Add("a");
}

private void button1_Click(object sender, EventArgs e)
{
    Task task = new(CellUpdate);

    task.Start();
}

void CellUpdate()
{
    dataGridView1.Rows[0].Cells[0].Value = "b"; // works fine
}

행을 추가할 때에는 델리게이트를 써야 한다. 아래의 코드는 실행되지 않는다.

private void button2_Click(object sender, EventArgs e)
{
    Task task = new(RowAdd);

    task.Start();
}

void RowAdd()
{
    dataGridView1.Rows.Add("b"); // raises an error
}