如何在按钮的整个过程中运行进度条(c# Windows窗体)

本文关键字:Windows 窗体 运行 按钮 过程中 | 更新日期: 2023-09-27 18:17:32

我有一个窗体应用程序上的按钮,当按下运行两个函数是在不同的类。处理时间需要10秒左右,我想运行一个进度条,简单地作为审美反馈给用户,让他们知道正在发生的事情。它不需要在工作完成时实际进行。问题是它从来没有真正开始移动……应用程序的其余部分工作正常(即数据库被加载,结果被处理),但进度条不做任何事情。任何人能提供的任何帮助都会很棒!谢谢! !

    private void button1_Click(object sender, EventArgs e)
    {
        //START PROGRESS BAR MOVEMENT
        pb.Style = ProgressBarStyle.Marquee;
        LoadDatabase.Groups();
        ProcessResults.GroupOne();
        //END PROGRESS BAR MOVEMENT
        ????
    }

如何在按钮的整个过程中运行进度条(c# Windows窗体)

标记您的按钮1点击()处理程序与async,然后使用awaitTask.Run:

    private async void button1_Click(object sender, EventArgs e)
    {
        // START PROGRESS BAR MOVEMENT:
        button1.Enabled = false;
        pb.Style = ProgressBarStyle.Marquee;
        pb.Show();
        // DO THE WORK ON A DIFFERENT THREAD:
        await (Task.Run(() =>
        {
            System.Threading.Thread.Sleep(5000); // simulated work (remove this and uncomment the two lines below)
            //LoadDatabase.Groups();
            //ProcessResults.GroupOne();
        }));
        // END PROGRESS BAR MOVEMENT:
        pb.Hide();
        button1.Enabled = true;
    }