首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#线程未停止

C#线程未停止
EN

Stack Overflow用户
提问于 2012-09-21 21:33:13
回答 1查看 476关注 0票数 0

updater.SearchByFunctionName在5-10秒后返回,我想在它工作时增加进度条的值,但它从来没有停止过。

我对线程是个新手,所以可能是非常基础的东西,我不知道。

代码语言:javascript
复制
           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;
            }
EN

回答 1

Stack Overflow用户

发布于 2012-09-21 21:37:29

你阻塞了UI线程,这阻止了对进度条的任何更新。

您应该使用Timer,将事件附加到Tick事件,并在其中放置更新进度条的代码。

看起来你也在手动制作一个Marquee风格的进度条。ProgressBar内置了对此的支持。您可以只添加以下内容:

代码语言:javascript
复制
myProgressBar.Style = ProgressBarStyle.Marquee;

您可以将MarqueeAnimationSpeed设置为适当的值。在此之后,您不需要为它做任何事情。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12531613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档