バックグラウンド タスクまたは同等のものを使用して、いくつかのパラメータをバックグラウンド タスクに渡し、タスクが終了してテキスト フィールドを更新するときにタスクから戻り値を取得する方法を理解しようとしています...
これは、VB.NET で高レベルでやりたいことです。
ユーザーがフォームのボタンをクリックする
いくつかの引数を使用してバックグラウンド スレッドで実行される HTTP 要求
リクエストからのレスポンスを受信したら、フォームのフィールドをこのデータで更新します
コードは次のとおりです。
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