在学习使用MVC的过程中,会经常遇到从Excel文件导入到数据库的需求,数据量也还不小,后台处理经常需要较长时间,这时候就需要一个进度条来显示执行状态了。
通过百度“MVC PROGRESS”或者“MVC 进度条”,找到的结果都不是管用的。大多数都会出现这篇博文中所说的问题:
https://www.cnblogs.com/crazyguo/p/4878345.html,
“进度一直不提示,直到数据上传成功了,提示显示100%“。调试过程发现,
线程虽然将读取进度条的命令安排下去了,但是只给了面子没给里子,读取进度条的代码一条都不会去执行!通过把休眠时间强制改成System.Threading.Thread.Sleep(500),原先总共只需要1分钟不到的后台任务,直到约2分钟之后才有可能会去显示进度条数据。这样就失去了进度条的意义。
最后,找到这个老外的网站
https://www.codeproject.com/Articles/1124691/SignalR-Progress-Bar-Simple-Example-Sending-Live-D
才最终解决了问题。
我们先创建一个MVC项目,然后开始测试我们的进度条。
第 1 步,通过 NuGet 包管理器,安装 Microsoft.AspNet.SignalR
第 1 步,通过 NuGet 包管理器,安装 Microsoft.AspNet.SignalR
第
2
步,修改<