WPF中ProgressBar 每0.1秒value+1如何实现?

我想法是这样的privatevoidpbWroking(ProgressBarpb,inta){for(doublei=pb.Value;i<a;i++){DateTim... 我想法是这样的

private void pbWroking(ProgressBar pb, int a)
{
for (double i = pb.Value; i < a; i++)
{
DateTime dt = DateTime.Now.AddSeconds(0.1);
while (DateTime.Now < dt)
{
}
pb.Value += 1;
}

}
但实际使用时,虽然运行没问题,但没有及时显示,到了100才显示……求指导
展开
 我来答
fjun_1118
2013-06-26
知道答主
回答量:3
采纳率:0%
帮助的人:4639
展开全部
你这样当然不行,你这样的话程序将独占进程,只有当你pb.Value =100时,主程序才会去刷界面,所以你看到是没有及时显示。

可以开一个线程或者放入定时器中更新pb.Value。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mickal小米
推荐于2016-02-17 · TA获得超过3666个赞
知道大有可为答主
回答量:1542
采纳率:100%
帮助的人:1773万
展开全部
你可以使用DispatcherTimer类做定时功能。
后台你可以这么写:
public MainWindow()
{
InitializeComponent();
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0,0,1);
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}

void timer_Tick(object sender, EventArgs e)
{
if (pbar.Value <= 100)
{
pbar.Value += 1;
}
}
PS:pbar为前台ProgressBar的Name
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式