关于多线程的一个问题
希望懂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); 主线程是不会挂起的还会继续运行。
------解决方案--------------------死循环,说下你是怎么控制线程数量的?
估计数量没控制住了
------解决方案--------------------应当限制线程的数量,主进程一直在创建新的,当然会挂
------解决方案--------------------学习了