当前位置:编程学习 > C#/ASP.NET >>

为什么WebClient在多线程中的操作会影响到UI线程?

最明显的问题就是UI线程会卡但不会卡死,但绝对没有操作UI线程
用DownloadString几乎不卡,用UploadData很容易卡
如果UploadData操作所使用的时间短的话那也不是多卡
但问题是为什么多线程的操作会影响到主线程呢? --------------------编程问答-------------------- 可能占用了cpu内存,导致资源不够用 --------------------编程问答-------------------- 操作系统原理就是这样的,CPU处理是需要时间的。
东西开多了,WINDOW桌面也会卡呢。 --------------------编程问答-------------------- 线程中异步处理 --------------------编程问答-------------------- 以上说的对!! --------------------编程问答--------------------
引用 2 楼 much0726 的回复:
操作系统原理就是这样的,CPU处理是需要时间的。
东西开多了,WINDOW桌面也会卡呢。

那除了异步有没有别的办法呢?或者使用Task会不会比Thread好点? --------------------编程问答-------------------- 似乎是存这个问题,我测试过运行同样的长的时间,多线程发送请求数,还没有单线发送请求数多。在电信光纤100M的网络中测试的 --------------------编程问答--------------------
引用 6 楼 WM_JAWIN 的回复:
似乎是存这个问题,我测试过运行同样的长的时间,多线程发送请求数,还没有单线发送请求数多。在电信光纤100M的网络中测试的

这个真没办法解决?只能让用户少开点线程? --------------------编程问答--------------------
引用 6 楼 WM_JAWIN 的回复:
似乎是存这个问题,我测试过运行同样的长的时间,多线程发送请求数,还没有单线发送请求数多。在电信光纤100M的网络中测试的


引用 2 楼 much0726 的回复:
操作系统原理就是这样的,CPU处理是需要时间的。
东西开多了,WINDOW桌面也会卡呢。


引用 1 楼 danding_ge 的回复:
可能占用了cpu内存,导致资源不够用

为什么````我把项目编译的目标平台变成x86就好多了```虽然还是卡,但已经好很多了``` --------------------编程问答-------------------- 终于找到最根本的原因了
我新建了控制台程序添加了一个Form窗口,100线程UploadData一点都不卡,跑得飞快,这跟设想完全不一样,设想中应该是会卡才对的
然后又从原来的代码中一句一句删,代码都快删完了照样还是卡
偶然的机会,因为程序启动不能立即点击“开始”,要导入数据才能开始,后来为了方便测试就让开始可点击,然后再测试,奇迹当生了
尼玛不说一点都不卡,还是有那么一点的,但跟之前那真是差距太大了
这个时候还没怀疑到罪魁祸首,还以为是List<T>造成的,毕竟这玩意不是线程安全的,换成Queue照样不行
然后才怀疑到了尼玛是数据导入太多了`````50万条数据
我只导入几万条数据,一下子就不卡了```
这次教训值了,来个人结贴 --------------------编程问答-------------------- 表情好丰富
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,