社区
C#
帖子详情
C# 上传大量数据时页面卡死
kekemans
2015-05-25 04:06:04
向数据库发送文件 数据过大时界面就会卡死 等操作完服务器库才会返回结果 如何解决卡死的问题啊 各路大神求解救
...全文
471
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#
实现大文件
上传
一、 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行
上传
; 支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传。刷新
页面
后继续传输。关闭浏览器后保留进度信息。 支持文件夹批量
上传
下载,服务器端保留文件夹层级结构,服务器端文件夹层级结构与本地相同。 支持大文件批量
上传
(20G)和下载,同
时
需要保证
上传
期间用户电脑不出现
卡死
等体验; 支持文件夹
上传
,文件夹中的文件数量达到1万个以上,且包含层级结构。 支持断点续传,关闭浏览器或刷新浏
从卡顿到丝滑:
C#
上位机UI性能优化实战(附CPU占用从80%降到5%的方案)
去年帮一家车企优化过一套焊接设备监控系统——原本每秒采集100个参数,UI卡得连按钮都点不动,任务管理器里CPU常年飙到80%以上,操作工频繁投诉“软件
卡死
”。最后用了5个核心优化方案,把CPU占用压到5%以内,界面刷新从“幻灯片”变成“丝滑流”。工业上位机的UI卡顿,大多不是代码写得“错”,而是没考虑“工业场景的特殊性”——比如
数据
量太大、刷新太频繁、UI线程被绑架。这篇文章就从实际案例出发,带你一步步拆解优化思路,每个方案都附代码对比和性能
数据
,抄过去就能用。
c#
多线程界面卡顿_优化electron客户端卡顿的几种方案
背景公司需要做一个同步盘的客户端,框架技术选型方面使用了支持跨平台的Electron框架,其中一些核心功能就是文件的
上传
,和下载,考虑到node操作文件比较方便,起初把文件的下载
上传
操作放到主进程,在
大量
文件下载和
上传
时
,造成了界面的卡顿,现在就这个问题进行剖析和优化。解决卡顿方案一首先要确定是什么因素导致的卡顿,在平
时
,没有
上传
下载文件
时
,electron客户端没有出现卡顿的情况,然后对下载的流...
上传
大文件解决方案资源
这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问
上传
接口的
时
候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了:
上传
文件实体类: 看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。 publicclassFileInf{ publicFileInf(){} publicStringid=""; publicStringpid=""; pu...
C#
多文件
上传
功能实现与实战详解
技巧方法查看是否发送文件验证编码类型检查文件数量Form Data 下有多少个同名条目模拟请求测试使用 Postman 构造相同 multipart 请求日志输出服务端打印和AllKeys💡 进阶建议:可在中间件中拦截原始请求流,写入日志文件以便离线分析MIME结构。通过上述系统化的构建与调试方法,开发者不仅能实现功能,还能精准定位各类
上传
异常,为后续异步
上传
与性能优化打下坚实基础。是一个抽象类,位于System.Web。
C#
111,120
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章