我在form1中有一个方法,我使用progressBar:
counter += 1;
int position = (int)Math.Round((counter / updateTime) * 100);
xpProgressBar1.Text = position.ToString() + " %";
xpProgressBar1.Position = position;
if (counter == 10)
{
counter = 0;
}
新课程中的计时器:
public static void Start(Form1 form)
{
frm1 = form;
_timer.Elapsed += _timer_Elapsed;
_timer1.Elapsed += _timer1_Elapsed;
_timer.Interval = 1000;
_timer1.Interval = 1000;
count = 5;
LoadOldHtmlFiles();
frm1.CombindedStringFix();
_timer.Start();
_timer1.Start();
}
如果我将_timer间隔设置为10000并且将_timer1间隔设置为1000并且进度条每次移动10%并且在10秒后达到100%。
但现在我希望一切都变得更快,所以我将_timer间隔从10000改为1000。 我现在应该在progressBar代码中更改什么,以便它每秒跳转到100%? (如果我没有错,这是逻辑,如果我将定时器间隔更改为1000,所以progressBar应该每秒跳到100%)。
counter += 1;
int position = (int)Math.Round((counter / updateTime) * 100);
xpProgressBar1.Text = position.ToString() + " %";
xpProgressBar1.Position = position;
if (counter == 10)
{
counter = 0;
}
我应该将计数器== 10更改为?我是否应该改变一些内容:
int position = (int)Math.Round((counter / updateTime) * 100);
答案 0 :(得分:0)
你应该将_timer间隔设置为1000并将_timer1间隔设置为100
答案 1 :(得分:0)
更好的方法是使用BackgroundWorker
。见How to: Use a Background Worker。 BackgroundWorker
在另一个线程中完成其工作,并使UI响应。它还有一种向UI线程报告进度的机制。您可以在没有任何特殊多线程知识的情况下使用它。