社区
C#
帖子详情
C# 上传大量数据时页面卡死
kekemans
2015-05-25 04:06:04
向数据库发送文件 数据过大时界面就会卡死 等操作完服务器库才会返回结果 如何解决卡死的问题啊 各路大神求解救
...全文
400
5
打赏
收藏
C# 上传大量数据时页面卡死
向数据库发送文件 数据过大时界面就会卡死 等操作完服务器库才会返回结果 如何解决卡死的问题啊 各路大神求解救
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kekemans
2015-05-26
打赏
举报
回复
那执行完了怎么返回说执行完了?
fangpengyu
2015-05-25
打赏
举报
回复
多线程操作,就不会影响主线程,比较简单的方法,定义一个TaskFactory taskFactory=new TaskFactory(); taskFactory.StartNew(()=>{里面是要放入多线程执行的代码 }); 比用Thread这个创建多线程简单,不懂上网查查就知道了
kekemans
2015-05-25
打赏
举报
回复
//上传数据实现 public bool UpLoading() { System.Threading.Thread.Sleep(100); string filename; int node_count = 0; filename = "/"; //遍历树型控件 if (GuanTreeView.Nodes[0] == null) { return false; } if (GuanTreeView.Nodes[0].Nodes[0] == null) { return false; } FileStream fs; string curr_path = System.Environment.CurrentDirectory; DateTime curr_date_time = new System.DateTime(); curr_date_time = System.DateTime.Now; int i = 0; node_count = GuanTreeView.Nodes[0].GetNodeCount(true); for (i = 0; i < node_count; i++) { if (GuanTreeView.Nodes[0].Nodes[i].Checked == true) { //组成文件名 string sel_string = this.GuanTreeView.Nodes[0].Nodes[i].Text.ToString(); string tmp1 = sel_string.Substring(0, sel_string.IndexOf('-')); int i_start = Convert.ToInt32(tmp1); int j = i_start / 1000; file_name = curr_path + "\\tmp\\" + txtBranCode.Text + curr_date_time.Year.ToString() + curr_date_time.Month.ToString() + curr_date_time.Day.ToString() + j.ToString() + ".txt"; //先发送一个指令过去 string zhiling = "9999|" + txtBranCode.Text + curr_date_time.Year.ToString() + curr_date_time.Month.ToString() + curr_date_time.Day.ToString() + j.ToString() + ".txt|1|"; //接收到返回指令后开始传文件 byte[] buffer = new byte[2048]; buffer = Encoding.Default.GetBytes(zhiling); LoginForm.m_socket.Send(buffer); System.Threading.Thread.Sleep(10); fs = File.Open(file_name, FileMode.Open); StreamReader sr = new StreamReader(fs); zhiling = "9999|" + txtBranCode.Text + curr_date_time.Year.ToString() + curr_date_time.Month.ToString() + curr_date_time.Day.ToString() + j.ToString() + ".txt|2|"; buffer = Encoding.Default.GetBytes(zhiling); LoginForm.m_socket.Send(buffer); System.Threading.Thread.Sleep(100); } } return true; } 这是上传的方法 怎么多线程不能卡死
邱_子墨
2015-05-25
打赏
举报
回复
楼上兄弟说的正解
於黾
2015-05-25
打赏
举报
回复
用多线程啊,不要把耗时的操作都放主线程里
程序员内功修炼 -
数据
结构(
C#
)
你有没有面试的
时
候,被问到
数据
结构的...学习
C#
语言之后的能力进阶,写出高效的代码,培养专业的程序设计思维,训练使用程序语言描述解决方案的能力,你如果刚好也是一枚Unity程序员,千万不要错过,绝对能帮得到你。
C#
实现大文件
上传
一、 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行
上传
; 支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传。刷新
页面
后继续传输。关闭浏览器后保留进度信息。 支持文件夹批量
上传
下载,服务器端保留文件夹层级结构,服务器端文件夹层级结构与本地相同。 支持大文件批量
上传
(20G)和下载,同
时
需要保证
上传
期间用户电脑不出现
卡死
等体验; 支持文件夹
上传
,文件夹中的文件数量达到1万个以上,且包含层级结构。 支持断点续传,关闭浏览器或刷新浏
WPF总结二(大
数据
读取导致
页面
卡顿处理)
C#
处理大
数据
文件读取
上传
大文件解决方案资源
这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问
上传
接口的
时
候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了:
上传
文件实体类: 看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。 publicclassFileInf{ publicFileInf(){} publicStringid=""; publicStringpid=""; pu...
Winform开发中的编程习惯
1.整个解决方案包含一个启动项目和类库项目 启动项目只包含一个主窗体(FrmMain)和程序入口类文件(Program.cs)。 类库项目主要是实现不同的功能(功能性代码建议放到相应的类库项目中)。 2.启动项目和类库项目一般按照.NET Framework4.0配置 注意:不是.NET Fr...
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章