gpt4 book ai didi

Winforms C# : async initialize

转载 作者:行者123 更新时间:2023-12-05 03:43:40 25 4
gpt4 key购买 nike

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

最佳答案

您通常会在 Form_Load 事件中执行此类工作。例如:

using System;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private async void Form1_Load(object sender, EventArgs e)
{
await RefreshDataAsync();
}

private async void button1_Click(object sender, EventArgs e)
{
await RefreshDataAsync();
}

private async Task RefreshDataAsync()
{
button1.Enabled = false;
listBox1.Items.Clear();

try
{
var data = await GetDataFromDataSourceAsync();
foreach(var item in data)
{
listBox1.Items.Add(item);
}
}
finally
{
button1.Enabled = true;
}
}
}
}

因此您将创建一个“刷新数据”方法,并让您的 Form_Load 事件调用它。由于您分离了刷新代码,因此您也可以让其他东西调用它,例如按钮。

Form_Load 或按钮点击事件等 WinForm 事件可以通过简单地向它们添加 async 关键字来实现异步。更多信息 here .

关于Winforms C# : async initialize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66684477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com