我試圖在從數(shù)據(jù)庫中檢索大數(shù)據(jù)時(shí)顯示一個(gè)模態(tài)窗口。(我使用的是 C#。)程序的“檢索數(shù)據(jù)”部分是由async/await函數(shù)組成的,我通過以下方式調(diào)用該函數(shù):GetSomeData(sqlquery, grdControl);這就是我的問題開始的地方,在 的聲明中GetSomeData,我放了一行來彈出一個(gè)模態(tài)窗口,因此,它不會(huì)繼續(xù)到下一行。private async Task GetSomeData(string sSQL, GridControl grd){ LoadingForm frmload = new LoadingForm(); frmload.ShowDialog(); DataTable results = await GetDataSetAsync(sSQL); frmload.Close();}我已經(jīng)閱讀了有關(guān)通過使用單獨(dú)的任務(wù)或使用后臺(tái)工作者來實(shí)現(xiàn)加載表單的線程,但是如果我使用它,加載表單不再看起來像模態(tài)表單,我希望后臺(tái)表單處于非活動(dòng)狀態(tài),從而防止用戶交互加載時(shí)。
2 回答

心有法竹
TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
不要在要顯示模態(tài)對(duì)話框的方法中從數(shù)據(jù)庫加載數(shù)據(jù)。
您應(yīng)該DataTable results = await GetDataSetAsync(sSQL);進(jìn)入模態(tài)窗口。
您可以將 DataTable 結(jié)果和 sSQL 傳遞到您的模態(tài)窗口并執(zhí)行 Get there:
DataTable results;
LoadingForm frmload = new LoadingForm(results, sSQL);
frmload.ShowDialog();
// Your data should be ready here
LoadingForm 內(nèi)部:
results = await GetDataSetAsync(sSQL);
this.Close()
- 2 回答
- 0 關(guān)注
- 200 瀏覽
添加回答
舉報(bào)
0/150
提交
取消