日期:2014-05-18  浏览次数:20704 次

关于多线程的一个问题
希望懂c#多线程的兄弟帮忙看看

我想下载一个网页链接里面的所有图片,并在限制线程运行数量的情况下,使用多线程对图片进行下载和保存。

我提取出了一个方法 
public static void PhotoSave(object str)其中str中包含了图片的路径
我想用多线程控制PhotoSave运行

我的做法是下面这样的:
for
{
  Thread thr = new Thread(new ParameterizedThreadStart(PhotoSave));
  thr.Start(param);
}
在PhotoSave中使用Mutex控制实际运行的线程的数量。

运行结果:
1,我这样做之后运行之后提示虚拟内存不足。

问题:
1,如何解释并解决这个问题?
2,请问一下线程在一开始new的时候即使它没有开始运行就分配资源吗?







------解决方案--------------------
死循环,不断分配内存当然虚拟内存不足。
thr.Start(param); 主线程是不会挂起的还会继续运行。
------解决方案--------------------
死循环,说下你是怎么控制线程数量的?
估计数量没控制住了
------解决方案--------------------
应当限制线程的数量,主进程一直在创建新的,当然会挂
------解决方案--------------------
学习了