后台运行异常如何不影响主界面?

pfworld 2010-05-31 06:44:36
我在程序运行后台进行本地和远程数据上传,在远程上传异常后主界面老是卡!请问如何处理?

使用:backgroundWorker控件。

在远程上传前,先ping远程主机,如果ping通则进行上传,如果在上传过程中异常,则保存上传数据到本地临时表内,后台还有一个backgroundWorker进行时时信息搜索,如果本地临时表内有数据,则上传临时表内数据。

在运行界面由于数据交互比较多,而且涉及后台运行比较多,大概10来个backgroundWorker进行运行。



...全文
219 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianuMan 2010-06-21
  • 打赏
  • 举报
回复
数据处理用多线程
捷哥1999 2010-06-21
  • 打赏
  • 举报
回复
你应该是在backgroundWorker处理不当导致的!
而且是否需要那么多的backgroundWorker,你需要仔细再考虑一下,优化设计!


下面是一个使用后台线程处理的例子,希望对你有帮助!
Another way to Invoke UI from a Worker Thread

运行效果图:
birdlonger 2010-06-21
  • 打赏
  • 举报
回复
10个backgroundworker 不多, 应该是你里面的界面操作太频繁了. MARK & UP
pfworld 2010-06-21
  • 打赏
  • 举报
回复
回复又分!!自己UP!
pfworld 2010-06-06
  • 打赏
  • 举报
回复
回复又分!!自己UP!
afeng124 2010-06-02
  • 打赏
  • 举报
回复
考虑一下7楼的意见
程序漫步 2010-06-02
  • 打赏
  • 举报
回复
楼主吧 要把异常抓住,,放出来看下 就明白来
pfworld 2010-06-02
  • 打赏
  • 举报
回复
自己UP一下!!回复又分!!
kimmking 2010-06-02
  • 打赏
  • 举报
回复
1、看看性能监视器,看在哪儿了。数据库操作,本地io,还是计算,或者网络io,或是轮询太频繁。
2、同意sp1234,太多了。
  • 打赏
  • 举报
回复
[Quote=引用楼主 pfworld 的回复:]
在运行界面由于数据交互比较多,而且涉及后台运行比较多,大概10来个backgroundWorker进行运行。[/Quote]废话懒得说了!在1个或者2个里边进行!
Joetao 2010-05-31
  • 打赏
  • 举报
回复
曾今记得用过Application.DoEvents(),楼主试一下Application.DoEvents()


如果你不用DOEVERNTS,一个处理上万条数据的程序,在处理完之前就会像是死机,你不管点什么,它会说不响应。。。所以,你如果想执行到一半取消,就只能用结束任务。。
不过加上DOEVENTS,虽然每 个循环时间长了点,不过多出的时间用来响应你其它的操作。。可以在任意时刻结束工作,不会出现不响应的事件。。
参看
http://topic.csdn.net/t/20040802/16/3235042.html
onenewsmile 2010-05-31
  • 打赏
  • 举报
回复
示例:
while(true)
{
try
{
//可能存在异常的代码
}
catch
{
//不做处理
}
}

这样可以直接跳过异常而不影响速度
wanghuaide 2010-05-31
  • 打赏
  • 举报
回复
global.asax 文件中
protected void Application_Error(Object sender, EventArgs e)
wuyq11 2010-05-31
  • 打赏
  • 举报
回复
锁死界面应该更新太频繁了
Application.DoEvents()
皇城龙三 2010-05-31
  • 打赏
  • 举报
回复
捕捉一下异常,看看

跟踪一下程序,看看哪里有错误
xiaofan_sap 2010-05-31
  • 打赏
  • 举报
回复
进程资源占用过多造成的,lz应该跟踪看看~
zhgroup 2010-05-31
  • 打赏
  • 举报
回复
UI比较卡,是不是后台线程运行占用资源较高,还是你的机器配置不行呢?
另外,后台运行10多个线程,也不是很多啊;这个主要看你这些线程都是在做什么操作
是否有特别占用资源的

111,098

社区成员

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

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

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