Problem z wykorzystaniem funkcji

0

Cześć, mam problem mam oto kod na pobieranie pliku:

        private void Download(string url, string filename)
        {
            using (WebClient wcDownload = new WebClient())
            {
                try
                {

                    webRequest = (HttpWebRequest)WebRequest.Create(url);
                    webRequest.Credentials = CredentialCache.DefaultCredentials;
                    webResponse = (HttpWebResponse)webRequest.GetResponse();
                    Int64 fileSize = webResponse.ContentLength;


                    strResponse = wcDownload.OpenRead(url);

                    strLocal = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.None);


                    int bytesSize = 0;

                    byte[] downBuffer = new byte[2048];


                    while ((bytesSize = strResponse.Read(downBuffer, 0, downBuffer.Length)) > 0)
                    {

                        strLocal.Write(downBuffer, 0, bytesSize);

                        this.Invoke(new UpdateProgessCallback(this.UpdateProgress), new object[] { strLocal.Length, fileSize });
                    }
                }
                finally
                {

                    strResponse.Close();
                    strLocal.Close();

                }
            }


        } 

I jest w nim mały problem gdy używam go w pętli to pierwszy plik się pobiera natomiast następne wywołują zwieszenie się programu.

Jakieś propozycje jak to rozwiązać?

Literówka, przepraszam :)

0

dlaczego webRequest i webResponse nie są zmiennymi lokalnymi? webResponse używaj w klauzuli using, albo w finally wywołuj na nim Dispose().

1 użytkowników online, w tym zalogowanych: 0, gości: 1