0

我只是想弄清楚如何使用后台任务或类似的东西将一些参数传递给后台任务,然后在任务完成并更新文本字段时从任务中获取返回值......

这就是我想在 VB.NET 的高层次上做的事情:

  1. 用户单击表单上的按钮

  2. 在后台线程中使用一些参数执行的 HTTP 请求

  3. 收到请求的响应时,使用此数据更新表单上的字段

这是代码:

    Public Class Form1
    Dim WebUpdateWorker As BackgroundWorker

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        Dim arg1 As String = "Hi"
        Dim arg2 As Integer = 1
        WebUpdateWorker = New BackgroundWorker
        AddHandler WebUpdateWorker.DoWork, AddressOf DoWork
        AddHandler WebUpdateWorker.RunWorkerCompleted, AddressOf WorkFinished
        WebUpdateWorker.RunWorkerAsync()

    End Sub

    Public Function httpTask(ByVal arg1 As String, ByVal arg2 As Integer)
        ' do http request, return the http response
        Return "http response"
    End Function

    Private Sub DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
        ' I want to pass these values in instead of hard coding them here
        httpTask("Hi", 1)
    End Sub

    Private Sub WorkFinished(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs)
        ' I want to use the returned value from httpTask here
        TextBox.Text = ("Result from background job: ")
    End Sub

End Class
4

0 回答 0