updater.SearchByFunctionName在5-10秒后返回,我想在它工作时增加进度条的值,但它永远不会停止。
我是线程新手,所以也许这是非常基本的东西,我不知道。
Thread t = new Thread(delegate()
{
updater.SearchByFunctionName(testsuiteBox.SelectedValue.ToString(), functionNameBox.Text);
});
t.Start();
progressBar.Value = 0;
while(t.IsAlive)
{
Thread.Sleep(1000);
if (progressBar.Value >= 200 )
{
progressBar.Value = 0;
}
progressBar.Value += 20;
}
答案 0 :(得分:3)
您正在阻止UI线程,这阻止了对进度条的任何更新。
您应该使用Timer
,将事件附加到Tick
事件并放置代码以更新其中的进度条。
您似乎也在手动制作Marquee样式进度条。 ProgressBar
支持内置。您只需添加:
myProgressBar.Style = ProgressBarStyle.Marquee;
您可以将MarqueeAnimationSpeed
设置为合适的。之后,您不需要为此做任何事情。