C# Winform 表格异步加载代码示例 - 提升效率,优化用户体验
以下是使用异步加载 Winform 表格的 C# 代码示例:
private async void btnLoadData_Click(object sender, EventArgs e)
{
// 显示'加载中'提示信息
lblLoading.Text = '正在加载数据,请稍候...';
lblLoading.Visible = true;
try
{
// 异步加载数据
List<DataItem> items = await Task.Run(() => GetDataItems());
// 绑定表格数据
dgvData.DataSource = items;
}
catch (Exception ex)
{
MessageBox.Show('加载数据出错:' + ex.Message);
}
// 隐藏'加载中'提示信息
lblLoading.Visible = false;
}
private List<DataItem> GetDataItems()
{
// 模拟加载数据的耗时操作
Thread.Sleep(5000);
// 返回数据
List<DataItem> items = new List<DataItem>();
items.Add(new DataItem() { Id = 1, Name = 'Item 1', Price = 10.5 });
items.Add(new DataItem() { Id = 2, Name = 'Item 2', Price = 20.0 });
items.Add(new DataItem() { Id = 3, Name = 'Item 3', Price = 30.8 });
return items;
}
public class DataItem
{
public int Id { get; set; }
public string Name { get; set; }
public double Price { get; set; }
}
在上面的示例中,当用户单击'加载数据'按钮时,程序会显示'加载中'提示信息,然后使用Task.Run方法在后台线程中异步加载数据,加载完成后将数据绑定到表格控件上。
需要注意的是,在异步加载数据的过程中,由于后台线程与UI线程是不同的线程,因此需要使用Invoke方法在UI线程上更新UI控件的状态,以避免出现线程安全问题。
原文地址: https://www.cveoy.top/t/topic/ngKz 著作权归作者所有。请勿转载和采集!