火焰猫麟 2013-11-14 15:05 采纳率: 0%
浏览 5445

C#进度条能否根据代码的执行进度来加载进度?

我在网上搜索了下资料,大部分都是使用Timer控件或者线程来进行,但是最终都是根据计算结果来写出一个MaxValue和一个Value来计算并且填充进度条
但是计算的话总感觉不是很准确,我如今遇到了一个比较棘手的难关(对于我而言),有个界面的树在读取数据库进行绑定的时候会显得非常慢,但是设定进度条的时间长短根本无法确定,以及代码例如(链接TCP之类的)断开链接也会产生卡主的状况,但是由于线程的关系,进度条依然显示完毕了。
使得我非常的头疼,因此我想问问,有没有办法获取代码的执行进度,根据代码的总执行次数和现在执行的行数来填充进度条?

或者看到这个问题的您能给我一种更加好的方案呢?希望能被解答下。

  • 写回答

2条回答

  • 不良制品 2015-04-13 05:45
    关注

    不知道能不能在一开始就获取树中节点的数量。
    如果可以的话,可以使用System.ComponentModel.BackgroundWorker控件,这个控件可以用来做前后台进度显示。
    将BackgroundWorker控件的属性WorkerReportsProgress设置为True,之后调用控件的ReportProgress函数就会触发ProgressChanged事件。
    ProgressChanged事件中参数ProgressChangedEventArgs e,e.ProgressPercentage就是你之前ReportProgress函数中填写传递的数。
    如此就可以在ProgressChanged事件中去更新进度条了

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器