原来的代码,是在另一个线程操作的DataGridView
DataTable DataSource = SQLServerClass1.Select(ConsultOrder, out int a);
DataSource.Columns.RemoveAt(DataSource.Columns.Count - 1);//最后一列是图片地址,去掉
dataGridView1.Rows.Clear();
// 添加新行
foreach (DataRow row in DataSource.Rows)
{
dataGridView1.Rows.Add(row.ItemArray);
}
运行完直接卡死,后来查了文心,感觉可能是什么UI线程堵塞,之前一直是直接禁用检查
//不在线程可以访问界面的属性
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
后来解决也是问文心,改成这样就不卡死了,还是搞不懂具体怎么就卡住了,等写完研究一下
// 使用 Invoke 方法在 UI 线程上更新 DataGridView
dataGridView1.Invoke((MethodInvoker)delegate
{
// 在这里安全地更新 DataGridView
// 首先清除现有行(如果需要)
dataGridView1.Rows.Clear();
// 然后添加新行
foreach (DataRow row in DataSource.Rows)
{
dataGridView1.Rows.Add(row.ItemArray);
}
});