DataGridVeiwを10秒ごとに更新したい。これまでは更新後、新しい行が追加され、更新前にDataGridViewをクリーンアップする必要がありました。問題は、私がOnCallBack()
のdataGridView2.Rows.Clear();
とdataGridView2.Refresh();
を呼び出すと「クロススレッド操作が無効です」という例外が発生するということです。タイマーを使用してDataGridviewをクリアするには?
私はそれを呼び出そうとしましたが、それは助けになりません。
if(dataGridView2.InvokeRequired){
dataGridView2.Invoke(new MethodInvoker(delegate{
dataGridView2.Rows.Clear();
dataGridView2.Refresh();
}));
マイコード:
private void Live(){
timer = new System.Threading.Timer (_ => OnCallBack(), null, 1000,Timeout.Infinite);
}
private void OnCallBack()
{
timer.Dispose();
counter--;
label8.Text = counter.ToString();
if (counter == 0){
string[] pr = {"124"};
search.SearchLive(pr, dataGridView2, label10);
counter = 10;
}
timer = new System.Threading.Timer (_ => OnCallBack(), null, 1000,Timeout.Infinite);
}