如何制作状态(加载)显示表单

我试图在从数据库中检索大数据时显示一个模态窗口。(我使用的是 C#。)程序的“检索数据”部分是由async/await函数组成的,我通过以下方式调用该函数:


GetSomeData(sqlquery, grdControl);

这就是我的问题开始的地方,在 的声明中GetSomeData,我放了一行来弹出一个模态窗口,因此,它不会继续到下一行。


private async Task GetSomeData(string sSQL, GridControl grd)

{

    LoadingForm frmload = new LoadingForm();

    frmload.ShowDialog();

    DataTable results = await GetDataSetAsync(sSQL);

    frmload.Close();

}

我已经阅读了有关通过使用单独的任务或使用后台工作者来实现加载表单的线程,但是如果我使用它,加载表单不再看起来像模态表单,我希望后台表单处于非活动状态,从而防止用户交互加载时。


倚天杖
浏览 173回答 2
2回答

心有法竹

不要在要显示模态对话框的方法中从数据库加载数据。您应该DataTable results = await GetDataSetAsync(sSQL);进入模态窗口。您可以将 DataTable 结果和 sSQL 传递到您的模态窗口并执行 Get there:DataTable results;LoadingForm frmload = new LoadingForm(results, sSQL);frmload.ShowDialog();// Your data should be ready hereLoadingForm 内部:results = await GetDataSetAsync(sSQL);this.Close()
打开App,查看更多内容
随时随地看视频慕课网APP