因为子窗体加载的数据查询较慢,如果不用异步的话, 直到子窗体的数据加载完毕才会跳出窗体,这样想在父窗体加入 加载中的控件不好实现
而在子窗体内加入加载中的标识控件就相对容易了
仅仅在子窗体内用Form_Shown load没用异步的话是不行的,要用
await Task.Run(() =>. 并且 下边的异步中还不能加入控件直接赋值,会出现线程无法找到问题,而变量没问题 使用invote 也是不行的. await 意思是等待异步,但不会导致主线程卡掉.
uiWaitingBar1.Visible = true; await Task.Run(() => { infos= server.GetData(xxx); }); uiWaitingBar1.Visible = false; datagridview.DataSource = detailsinfos;