VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 869|回复: 8

多线程下载问题

[复制链接]

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-22 12:30:01 | 显示全部楼层 |阅读模式
的程序开了5个下载线程,每个下载线程下载不同的资源,但最多却只能支持两个下载线程,当第3个下载线程启动时系统就会崩溃,请问有什么办法可以解决吗?
回复

使用道具 举报

0

主题

119

帖子

67.00

积分

新手上路

Rank: 1

积分
67.00
发表于 2020-6-30 10:30:02 | 显示全部楼层
应该不会是线程个数限制的原因,应该是其他的原因!
不知你的程序怎样?
回复

使用道具 举报

0

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-6-30 14:15:01 | 显示全部楼层
线程本身不会有这样的问题,同楼上
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-6-30 18:15:01 | 显示全部楼层
最多只能支持两个线程?

不太可能吧..
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-6-30 18:45:01 | 显示全部楼层
TO:当第3个下载线程启动时系统就会崩溃

你所谓的系统崩溃是什么意思?
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-6-30 20:15:01 | 显示全部楼层
应该不会,这种下载,是有先河的了
回复

使用道具 举报

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-7-17 17:15:01 | 显示全部楼层

private WebRequest httpRequest;
        private WebResponse httpResponse;
        private byte[] buffer;
        private Thread downloadThread;
        Stream ns;
        private FileStream fs;
        private long length;
        private long downlength = 0;
        private long lastlength = 0;
        public delegate void updateData(string value); //设置委托用来更新主界面
        private int totalseconds = 0; //总用时
        private updateData UIDel;
        private string filename = @"d:\sybaohj.wmv";
        private int DownLoadNumber = 0;    //文件下载计数

private void downloadFile()
        {
            ns = httpResponse.GetResponseStream();

            int i;
            UIDel = new updateData(updateUI);
            while ((i = ns.Read(buffer, 0, buffer.Length)) > 0)
            {

                downlength += i;
                string value = downlength.ToString();
                this.Invoke(UIDel, value);
                fs.Write(buffer, 0, i);
            }
            speedlabel1.Text = "下载完成";
        }
        /* private void show()
         {
             UIDel = new updateData(updateUI);
             int value = 0;
             while (value <= 100)
             {
                 this.progressBar1.Value = value;
                 value++;
             }  
         }*/
        void updateUI(string value)
        {
            this.lensthlabel1.Text = "下载大小:"+value;
            this.progressBar1.Value = Int32.Parse(value);
        }

下载代码入下``崩溃就是系统无任何响应```也不会自动关闭会退出
回复

使用道具 举报

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-7-17 17:30:01 | 显示全部楼层
我用百度搜索了下```发现有个朋友和我同样问题``代码确实没问题```但不知道为什么线程超过3个程序就会无法响应```曾经我做个255个线程都不曾出现过此问题.
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-6 09:00:01 | 显示全部楼层
单CPU的? CPU被占住了?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表