社区
C#
帖子详情
C# 上传大量数据时页面卡死
kekemans
2015-05-25 04:06:04
向数据库发送文件 数据过大时界面就会卡死 等操作完服务器库才会返回结果 如何解决卡死的问题啊 各路大神求解救
...全文
489
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#
创建Process调用外部程序
卡死
的原因分析和解决方案
在
C#
中使用Process调用外部程序处理
大量
数据
时
,可能出现进程
卡死
的情况。原因是调用方在StandardOutput.ReadToEnd前调用WaitforExit,导致死锁。同
时
,同
时
读取StandardOutput和StandardError也可能引发死锁。解决方法是采用异步方式读取执行结果,并添加延
时
检查。
C#
高效利器:MiniExcel实战,轻松玩转Excel
数据
处理
本文深入介绍MiniExcel在
C#
中的核心应用场景,涵盖快速读写、流式大
数据
处理、多Sheet操作、模板填充导出及CSV/XLSX互转。强调其低内存占用、高吞吐性能与约定优于配置的设计理念,适用于后端
数据
导入导出、报表生成等高频业务场景,替代重量级Interop方案。
高并发物联网网关上位机实战:用
C#
扛住1000+设备的
数据
风暴,MQTT断线重连+边缘计算优化全揭秘
本文介绍基于
C#
与MQTTnet构建的高并发物联网网关,通过连接池、边缘计算三级处理机制及差值编码压缩技术,成功支撑1500+设备稳定运行。系统实现CPU使用率低于30%,带宽降低至15Mbps,并保障断线零丢包,显著节省云端资源与流量成本。
踩坑实录|
C#
上位机处理大
数据
卡顿?3个工业级优化方案(亲测有效,附代码)
本文聚焦工业场景下
C#
上位机处理高吞吐
数据
(如每秒8万+采集点、5000万条历史
数据
)引发的卡顿问题,系统剖析内存溢出、GC频繁抖动及UI阻塞三大根因,并提出三项核心技术方案:流式分页加载规避全量内存驻留;ObjectPool对象池复用抑制GC压力;Parallel+async并行异步解耦计算与UI线程。所有方案均基于.NET 8实现,含可复用代码与真实踩坑细节。
C#
调用Python服务?实现IndexTTS2语音合成功能在Win平台
本文介绍如何在Windows平台通过HTTP API实现
C#
调用Python部署的IndexTTS2语音合成服务。利用本地Web服务封装深度学习模型,兼顾
数据
安全与语音自然度,适用于医疗、金融等对隐私要求高的场景。采用异步请求避免阻塞UI,并探讨内存、显存、网络依赖等工程实践要点。
C#
111,131
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章