winform datagridView 一次删除20000条数据
Task<DeleteRowInfo>[] tasks = new Task<DeleteRowInfo>[taskCount]; // 创建一个数组来存储异步操作的结果
var date1 = DateTime.Now;
HashSet<string> dataBSet = new HashSet<string>();
for (int i = 0; i < dataGridView1.SelectedRows.Count; i++)
{
dataBSet.Add(dataGridView1.SelectedRows[i].Cells["Fid"].Value.ToString());
}
DataTable newDataA = new DataTable();
newDataA = dt.Clone();
Task.Run(() =>
{
foreach (DataRow row in dt.Rows)
{
string key = row["Fid"].ToString();
if (!dataBSet.Contains(key))
{
DataRow newRow = newDataA.NewRow();
newRow.ItemArray = row.ItemArray;
newDataA.Rows.Add(newRow);
}
}
dataGridView1.Invoke((Action)(() => //使用Invoke方法绑定新的DataTable到DataGridView
{
dataGridView1.DataSource = newDataA;
dataGridView1.Refresh();
}));
});
MessageBox.Show(" 结束时间:" + DateTime.Now + " 开始时间:" + date1.ToString());