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;
}发布于 2012-09-21 21:37:29
你阻塞了UI线程,这阻止了对进度条的任何更新。
您应该使用Timer,将事件附加到Tick事件,并在其中放置更新进度条的代码。
看起来你也在手动制作一个Marquee风格的进度条。ProgressBar内置了对此的支持。您可以只添加以下内容:
myProgressBar.Style = ProgressBarStyle.Marquee;您可以将MarqueeAnimationSpeed设置为适当的值。在此之后,您不需要为它做任何事情。
https://stackoverflow.com/questions/12531613
复制相似问题