这个 WEB 进度条问题出在哪儿?

风声3 2010-10-07 03:53:46
现在的情况是这样的:
页面1启动一个Thread,这是一个时间较长的循环,循环过程中会向数据库中写进度值。
页面2启动一个Javascript异步访问,读取数据库中进度值显示出来,然后继续异步访问,直到获得进度值为100%。

现在的结果是这样的:
单步调试页面1 Thread,过程中确实有写进进度值,比如1%……
Javascript异步访问每次都获得第一个进度值(0%),很久后获得最后一个进度值(100%),中间一直获取到0%

这个问题出在哪呢?或者是不是应该用别的方式传递进度值,而不要采用数据库呢?
...全文
61 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
风声3 2010-10-07
  • 打赏
  • 举报
回复
问题初步解决,原来用Stopwatch控制至少间隔1秒才向数据库写进度值。去掉Stopwatch相关代码就正常了。具体原因暂时没有深究。不过新问题又出现了。

新问题:
页面2就是一个进度查看器(或者叫任务查看器)
当页面1启动多个Thread,在页面2可以看到多个进度条,这时出现 ICallbackEventHandler 并发。但是结果只有一个进度条正常运行,其余的进度条被意外停止(Thread没停,进度条显示停止了)。似乎 ICallbackEventHandler 并发有 BUG。
gouhan02 2010-10-07
  • 打赏
  • 举报
回复
循环过程中会向数据库中写进度值?什么意思。你的进度值是一个进度一条记录?还是别的?
你干嘛要搞2个页面?直接页面1启动thread的时候就显示进度条不行?

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧