http://chunniux.blog.163.com/blog/static/148497192011111924134844/并行编程 ,,可以参考

解决方案 »

  1.   


    imageList1.Images.Add( WebRequest.Create(new Uri("图片地址")).GetResponse().GetResponseStream() );我是在 for 循环中添加图片的,请问这样怎么用线程呢?现在因为调用了webRequest引起阻塞!
      

  2.   

    Parallel.For(0, matARows,  i =>
                {
                });这个循环里的每一个都会开个自己执行啊
      

  3.   

    采用    // req1.BeginGetResponse(new AsyncCallback(GetResponseCallBack), temp1);begingetresponse
    异步加载
       /// <summary>
            /// 异步回调方法
            /// </summary>
            /// <param name="ia"></param>
            public void GetResponseCallBack(IAsyncResult ia)
            {            ///线程锁
                lock (lockThis)
                {
                    ImageListReq temp1 = ia.AsyncState as ImageListReq;
                    HttpWebRequest req = temp1.Req;                QzonePhotoInfo pinfo = temp1.Pinfo;
                    HttpWebResponse resp = req.EndGetResponse(ia) as HttpWebResponse;
                    Image img1 = Image.FromStream(resp.GetResponseStream());
                    imageList1.Images.Add(pinfo.Name, img1);
                    
                }        }