您的位置:程序门 -> .net技术 -> c#



多线程下载问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


多线程下载问题
发表于:2007-01-05 20:22:11 楼主
的程序开了5个下载线程,每个下载线程下载不同的资源,但最多却只能支持两个下载线程,当第3个下载线程启动时系统就会崩溃,请问有什么办法可以解决吗?
发表于:2007-01-05 20:32:001楼 得分:0
应该不会是线程个数限制的原因,应该是其他的原因!
不知你的程序怎样?
发表于:2007-01-05 20:37:462楼 得分:0
线程本身不会有这样的问题,同楼上
发表于:2007-01-05 20:46:553楼 得分:0
最多只能支持两个线程?

不太可能吧..
发表于:2007-01-05 20:47:444楼 得分:0
to:当第3个下载线程启动时系统就会崩溃

你所谓的系统崩溃是什么意思?
发表于:2007-01-05 20:50:155楼 得分:0
应该不会,这种下载,是有先河的了
发表于:2007-01-06 22:11:346楼 得分:0

  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);
                }

下载代码入下``崩溃就是系统无任何响应```也不会自动关闭会退出
发表于:2007-01-06 22:14:457楼 得分:0
我用百度搜索了下```发现有个朋友和我同样问题``代码确实没问题```但不知道为什么线程超过3个程序就会无法响应```曾经我做个255个线程都不曾出现过此问题.
发表于:2007-01-10 20:08:308楼 得分:0
单cpu的?   cpu被占住了?


快速检索

最新资讯
热门点击