如何在按钮的整个过程中运行进度条(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
????
}
标记您的按钮1点击()处理程序与async
,然后使用await
和Task.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;
}