Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Пользователь


Сообщения: 144
Благодарности: 3

Профиль | Отправить PM | Цитировать


mrcnn, Извините пожалуйста, но я уже дуб-дубом.. Можете сказать толком что в этом участке менять ?
Код: Выделить весь код
' Получить собственно файл
        If PathForDownl = "" Then
            FlName = IO.Path.GetTempPath & IO.Path.GetFileName(fl)
        Else
            PathForDownloads = GetMaxPath(PathForDownloads)
            If IO.Directory.Exists(PathForDownloads) = False Then
                IO.Directory.CreateDirectory(PathForDownloads)
            End If
            FlName = PathForDownloads & "\" & IO.Path.GetFileName(fl)
        End If
        If IO.Path.GetFileName(FlName).Split(IO.Path.GetInvalidFileNameChars).Length > 1 Then
            FlName = IO.Path.GetTempPath & GetUIN() & ".tmp"
        End If

        ' Получить асинхронно
        If WaitForDownload = False Then
            thr = New Threading.Thread(AddressOf AsyncDownload)
            thr.Start(myHttpWebResponse.GetResponseStream)

            ' Получить синхронно
        Else
            FileDownloading = True
            Dim myStreamReader As New IO.BinaryReader(myHttpWebResponse.GetResponseStream)
            Dim all As New System.Collections.Generic.List(Of Byte)
            Do
                ' Собственно получения порции данных
                Dim bts() As Byte = myStreamReader.ReadBytes(BufferSize)
                If bts.Length = 0 Then Exit Do
                all.AddRange(bts)
                ' Вызов события Идет прием данных
                ReceiveProgressInvoke(all.Count)

            Loop
            DownloadSuccess(all)
        End If
    End Sub
    ' Функция реализующая поток, который скачивайт файл порциями BufferSize
    Sub AsyncDownload(ByVal stream As Object)
        FileDownloading = True
        Dim myStreamReader As New IO.BinaryReader(stream)
        Dim all As New System.Collections.Generic.List(Of Byte)
        Do
            ' Всякие Прерывания и Паузы потока
            If FileDownloading = False Then DownloadCancelledInvoke() : myStreamReader.Close() : Exit Sub
            While DownloadPause
                System.Windows.Forms.Application.DoEvents()
                If FileDownloading = False Then DownloadCancelledInvoke() : myStreamReader.Close() : Exit Sub
            End While
            ' Собственно получения порции данных
            Dim bts() As Byte = myStreamReader.ReadBytes(BufferSize)
            If bts.Length = 0 Then Exit Do

            all.AddRange(bts)

            ' Вызов события Идет прием данных
            ReceiveProgressInvoke(all.Count)

        Loop
        DownloadSuccess(all)
    End Sub

Отправлено: 13:55, 04-11-2013 | #16