winform 等待加载窗体

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);
            }
        }

    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47410172/article/details/137470119