Помогите разобраться с backgroundworker

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

R3G
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 22.04.2009 (Ср) 7:15

Помогите разобраться с backgroundworker

Сообщение R3G » 16.05.2009 (Сб) 22:10

В общем никак не могу разобраться с backgroundworker'ом, пример из мсдн я не осилил.
Помогите пожалуйста, нужно сделать чтобы следующий код выполнялся в фоновом режиме (backgroundworker'е).
Код: Выделить всё
Imports System.Net
Imports System.Text
Imports System.IO
Imports System.Text.RegularExpressions


Public Class Form1
    Dim timeout As String
    Dim resultat As String
    Public Event Tick As EventHandler(Of EventArgs)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim postData = "dl.start=Free"
            Dim request As HttpWebRequest
            Dim response As HttpWebResponse
            request = CType(WebRequest.Create(TextBox1.Text), HttpWebRequest)
            request.ContentType = "application/x-www-form-urlencoded"
            request.ContentLength = postData.Length
            request.Method = "POST"
            request.AllowAutoRedirect = True
            request.Accept = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
            request.Referer = TextBox1.Text
            request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 (.NET CLR 3.5.30729)"
            Dim requestStream As Stream = request.GetRequestStream()
            Dim postBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(postData)
            requestStream.Write(postBytes, 0, postBytes.Length)
            requestStream.Close()
            response = CType(request.GetResponse(), HttpWebResponse)
            Dim dataStream As Stream = response.GetResponseStream()
            Dim reader As New StreamReader(dataStream, System.Text.Encoding.UTF8)
            Dim responseFromServer As String = reader.ReadToEnd()
            TextBox3.Text = responseFromServer
      Catch
            MsgBox("unknown error")
            Me.Refresh()
        End Try
    End Sub
End Class

В сети встречались примеры использования фонового режима в сложных программах, что меня запутывало, поэтому я не смог разобраться.
Раньше использовал
Application.DoEvents()
Me.Update()
но это не дает желанного результата.
------------------------------------------
Заранее благодарен!

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Помогите разобраться с backgroundworker

Сообщение Williams » 17.05.2009 (Вс) 1:23

Вставь нужный код в BackgroundWorker_DoWork и вызывай его .RunWorkerAsync
И вы думаете, что вас оставят в живых после прочтения этого поста?

R3G
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 22.04.2009 (Ср) 7:15

Re: Помогите разобраться с backgroundworker

Сообщение R3G » 18.05.2009 (Пн) 13:21

Спасибо, а теперь как можно прикрутить к backgroundworker'у прогрессбар?

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Помогите разобраться с backgroundworker

Сообщение Williams » 18.05.2009 (Пн) 13:45

Включи в свойствах воркера "Reports Progress". Далее в своем коде, который осуществляет процесс, вызывай репортный метод воркера. Обрабатывай прогресс в соотстветствующем его событии.
И вы думаете, что вас оставят в живых после прочтения этого поста?


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 78

    TopList