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