.net线程问题

yzhou_swnu 2008-08-04 10:09:00
做了一个程序读写IO,因为数据量很大,导致界面长时间无响应,所以创建了个线程来执行IO操作,却发现程序运行时间大大的增加了(相比在UI线程里执行),不知道哪位高人能指点一下,不甚感激!
...全文
97 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
卧_槽 2008-08-04
  • 打赏
  • 举报
回复
.net中的Thread不一定是一个真正的windows的Thread
而你的后台线程很可能和UI线程还是共用了一个线程来操作,只是在线程重分配时间,所以程序相应时间变长了。
你的问题可以通过异步的读写来做,这样可以使用更多的IO线程加快文件操作。
不过比较复杂的IO操作,或者大数据的读写不管怎么样都是非常耗时间的,硬盘只有那么快,所以也别报太大希望。
viki117 2008-08-04
  • 打赏
  • 举报
回复
时间片概念。。。。
yzhou_swnu 2008-08-04
  • 打赏
  • 举报
回复
但增加了了线程后执行的时间是原来的两倍以上,这个不算正常情况吧
peterb 2008-08-04
  • 打赏
  • 举报
回复
执行一个线程的开销还是很大的 除非你的电脑是真正的多CPU 才可能节省时间
yzhou_swnu 2008-08-04
  • 打赏
  • 举报
回复
难道执行线程需要额外的开销,但这个开销也太大吧
yzhou_swnu 2008-08-04
  • 打赏
  • 举报
回复
将Thread.Priority 设为 ThreadPriority.Highest,问题依旧
dyshadow 2008-08-04
  • 打赏
  • 举报
回复
具体问题的原因不清楚,但是你可以尝试着提高线程的优先级别。
yzhou_swnu 2008-08-04
  • 打赏
  • 举报
回复
自己顶
yzhou_swnu 2008-08-04
  • 打赏
  • 举报
回复
无意中发现一个问题,线程启动前将单元状态设置为单线程单元(Thread.SetApartmentState(ApartmentState.STA))后,发现运行速度和在UI线程中相当了,不太理解。希望哪位大虾能够解释下。
yzhou_swnu 2008-08-04
  • 打赏
  • 举报
回复
还有个问题问下yuwenge,我的程序在将数据读入后,还要对在内存中对数据进行些分析操作,那么这个问题数据用.net的线程怎么处理呢?
yzhou_swnu 2008-08-04
  • 打赏
  • 举报
回复
这样啊,我也觉得好像没有为新创建的线程独立分配系统资源,按你说的方法试试先,在此谢过啦!

110,499

社区成员

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

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

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