c# - 有没有办法在 c# 中为 datagridview 异步读取数据?
问题描述
我正在尝试在实体框架中异步填充 datagridview 数据源,但它显示了跨线程错误并且它不起作用,有人知道怎么做吗?非常感谢你
private async Task FillData()
{
await Task.Run(() =>
{
Model.AsyncTestDBEntities db = new Model.AsyncTestDBEntities();
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = db.Table_1.ToList();
});
}
当我调用上述方法时它不起作用
private async void button1_Click(object sender, EventArgs e)
{
await FillData();
}
解决方案
使用ToListAsync
而不是Task.Run()
.
private async Task FillData()
{
var db = new Model.AsyncTestDBEntities();
var list = await db.Table_1.ToListAsync();
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = list;
}
推荐阅读
- laravel - 当我要运行 php artisan serve 时出现错误
- java - 匹配列表中 4 个或更多单词的正则表达式
- c++ - 编译错误类“未命名类型”尽管包含头文件
- c++ - 右键移动在虚幻引擎 4.24 版本 c++ 中不起作用
- python - 如果用户输入“完成”,我如何打破 while 循环并转到 finally 块
- c# - 使用 SSIS 将 Excel 工作表从工作簿移动到另一个工作簿
- javascript - 如何在工具提示 echarts 中显示图标
- python - Django 如何使用数据迁移填充表?
- flutter - 获取 Widget 的高度并将其传递给 expandHeight
- php - laravel 是否需要单独的 Web 服务器才能运行?