邮件的下载系统中,通过线程池来下载文件。
比如一个邮件中有10个文件:
我会循环调用stp.QueueWorkItem(DoWork_Down, row)10次。(也就是吧10个任务放入线程池)
现在出现的问题是:10个任务中有部分任务可能一直不会被执行。
不知道为什么,请大侠帮忙指教!!!谢谢了。
后话:
现在有多个邮件,我都按照上面的方法去做。很多邮件下载失败了。!!!
------解决方案--------------------
不知道 .~
------解决方案--------------------
可能都没有使用过smartThreadPool 吧,一般人也就直接使用Thread,或ThreadPool
------解决方案--------------------
你起了10个线程肯定是没有问题的,很有可能是你下载邮件的时候服务器拒绝了,而不是SMP的问题。
另外,SMP不知道支持不支持线程池中的线程的优先级,有的时候,线程数较多的话,线程池中的线程的运行时间是有延迟的,尤其是到了.NET默认的最大数,如果你的其它线程一直不终止的话,新起的线程就永远不启动。
另外,默认的线程池的线程的优先级是默认的,也会影响到其执行的起点时间。