Winforms C#:异步初始化

Winforms C#:异步初始化,winforms,Winforms,我有一个WinformC#应用程序,它有一个DataGridView。我打算将数据从Azure表存储加载到其中,同时表单正在初始化。我担心如果我从Azure表存储中加载这么多数据,我的应用程序将崩溃。我可以在表单构造函数中使用Async从Azure表存储加载数据吗?通常在表单加载事件中执行此类工作。例如: 使用系统; 使用System.Threading.Tasks; 使用System.Windows.Forms; 命名空间WindowsFormsApp1 { 公共部分类Form1:Form {

我有一个
Winform
C#应用程序,它有一个
DataGridView
。我打算将数据从
Azure表存储
加载到其中,同时表单正在
初始化
。我担心如果我从Azure表存储中加载这么多数据,我的应用程序将崩溃。我可以在表单构造函数中使用
Async
Azure表存储加载数据吗?

通常在
表单加载事件中执行此类工作。例如:

使用系统;
使用System.Threading.Tasks;
使用System.Windows.Forms;
命名空间WindowsFormsApp1
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
}
私有异步void Form1\u加载(对象发送方,事件参数e)
{
等待RefreshDataAsync();
}
私有异步无效按钮1\u单击(对象发送方,事件参数e)
{
等待RefreshDataAsync();
}
专用异步任务RefreshDataAsync()
{
按钮1.启用=错误;
listBox1.Items.Clear();
尝试
{
var data=await GetDataFromDataSourceAsync();
foreach(数据中的var项)
{
列表框1.Items.Add(item);
}
}
最后
{
按钮1.启用=真;
}
}
}
}
因此,您需要创建一个“刷新数据”方法,并让您的
表单加载
事件调用它。因为您隔离了刷新代码,所以还可以让其他东西调用它,例如按钮


WinForm事件,如
Form\u Load
或按钮单击事件,可以通过简单地向其添加
async
关键字来实现异步。更多信息。

我非常感谢您的支持,它帮助我解决了我的问题。