Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отмена совершаемого события 
V
    Опции темы
DENSHER
Дата 29.11.2010, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 3.3.2010

Репутация: нет
Всего: нет



Каким образом можно отменить событие (DownloadTest) закачки файла.

Код

Private Sub BtStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtStart.Click
        Label2.Text = "Идет закачка файла."       
        Call DownloadTest()
    End Sub

Private Sub BtCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtCancel.Click
        ' Отменить закачку файла
    End Sub

Sub DownloadTest()
        Try
            Dim myClient As New WebClient()

            AddHandler myClient.DownloadProgressChanged, AddressOf DownloadProgressCallback
            AddHandler myClient.DownloadFileCompleted, AddressOf DownloadFileUnzip

            Dim url As New Uri("http://127.0.0.1/test.zip")
            Dim file As String = My.Application.Info.DirectoryPath & "\update\test.zip"

            myClient.DownloadFileAsync(url, file)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

Private Sub DownloadProgressCallback(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs)
        ProgressBar1.Value = e.ProgressPercentage
        Label1.Text = (e.ProgressPercentage.ToString & "%")
    End Sub

Private Sub DownloadFileUnzip()
            ' Распаковка файла
        Try
            Label2.Text = "Идет распаковка файла."
            File.Exists("update\test.zip")
            zipfile.ExtractZip("update\test.zip", ".", "")
            Label2.Text = "Файл успешно распакован."
            File.Delete("update\test.zip")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub


Это сообщение отредактировал(а) DENSHER - 29.11.2010, 18:07
PM MAIL   Вверх
RobinHoodPHD
Дата 29.11.2010, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 12.8.2007
Где: Русь

Репутация: нет
Всего: 2



Запустите загрузку - DownloadTest, в отдельном потоке, для этого служит класс System.Threading.Thread А по нажатию кнопки отмены вызывайте метод Abort класса Вашего потока загрузки. 
PM MAIL   Вверх
DENSHER
Дата 29.11.2010, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 3.3.2010

Репутация: нет
Всего: нет



Попытался сделать отдельный поток и остановить, но файл все равно докачиваеться до конца (

Вот что делал , (может что-то неправильно):
Код

Public DownloadThread As System.Threading.Thread

Private Sub BtStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtStart.Click
        Label2.Text = "Идет закачка файла."     
        DownloadThread = New System.Threading.Thread(AddressOf DownloadTest)
        DownloadThread.Start() ' Запуск нового потока.  
    End Sub

Private Sub BtCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtCancel.Click
        ' Отменить закачку файла
        DownloadThread.Abort()
    End Sub


Нашел способ как сеё чудо остановить.
Перед оператор объявить переменную -  Dim myClient As New WebClient() , BtCancel добавить myClient.CancelAsync() и закачивание файла останавливается.

Это сообщение отредактировал(а) DENSHER - 30.11.2010, 00:27
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.