为什么WebClient在多线程中的操作会影响到UI线程?
最明显的问题就是UI线程会卡但不会卡死,但绝对没有操作UI线程用DownloadString几乎不卡,用UploadData很容易卡
如果UploadData操作所使用的时间短的话那也不是多卡
但问题是为什么多线程的操作会影响到主线程呢? --------------------编程问答-------------------- 可能占用了cpu内存,导致资源不够用 --------------------编程问答-------------------- 操作系统原理就是这样的,CPU处理是需要时间的。
东西开多了,WINDOW桌面也会卡呢。 --------------------编程问答-------------------- 线程中异步处理 --------------------编程问答-------------------- 以上说的对!! --------------------编程问答--------------------
那除了异步有没有别的办法呢?或者使用Task会不会比Thread好点? --------------------编程问答-------------------- 似乎是存这个问题,我测试过运行同样的长的时间,多线程发送请求数,还没有单线发送请求数多。在电信光纤100M的网络中测试的 --------------------编程问答--------------------
这个真没办法解决?只能让用户少开点线程? --------------------编程问答--------------------
为什么````我把项目编译的目标平台变成x86就好多了```虽然还是卡,但已经好很多了``` --------------------编程问答-------------------- 终于找到最根本的原因了
我新建了控制台程序添加了一个Form窗口,100线程UploadData一点都不卡,跑得飞快,这跟设想完全不一样,设想中应该是会卡才对的
然后又从原来的代码中一句一句删,代码都快删完了照样还是卡
偶然的机会,因为程序启动不能立即点击“开始”,要导入数据才能开始,后来为了方便测试就让开始可点击,然后再测试,奇迹当生了
尼玛不说一点都不卡,还是有那么一点的,但跟之前那真是差距太大了
这个时候还没怀疑到罪魁祸首,还以为是List<T>造成的,毕竟这玩意不是线程安全的,换成Queue照样不行
然后才怀疑到了尼玛是数据导入太多了`````50万条数据
我只导入几万条数据,一下子就不卡了```
这次教训值了,来个人结贴 --------------------编程问答-------------------- 表情好丰富
补充:.NET技术 , C#