winform 等待加载窗体
当我们查询sql语句或处理大量的数据时,为了防止界面假死状态,可以加一个等待窗体过渡一下。
1. 新建一个主窗体,一个等待窗体frmLoading
2. 给等待窗体增加一个动态图片
3. 在主窗体中调用
namespace winformLoading
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using (var w = new frmLoading())
{
//((Action)(delegate ()
//{
// A();//处理数据
//}
//)).BeginInvoke(new AsyncCallback((IAsyncResult ar) => (ar.AsyncState as frmLoading).DialogResult = DialogResult.OK), w);
Task t = ShowWait(w);
w.StartPosition = FormStartPosition.CenterScreen;
w.ShowDialog();
}
}
private async Task ShowWait(frmLoading w)
{
await Task.Run(() =>
{
A();//处理数据
});
w.Close();
}
public void A()
{
for (int i = 0; i < 2; i++)
{
Thread.Sleep(1000);
}
}
}
}