outside6.wp.xdomain.jp
上記記事をVB向けに写経したのでまとめます。
リポジトリ
GitHubにプロジェクト全体を上げています。
github.com
準備
Windowsフォームアプリでプロジェクトを開始し、Form1へ以下のようにスタートボタン(Button1)とプログレスバー(ProgressBar1)を配置します。
スタートボタンを押すと以下のように進捗が出ます。
ソースコード
ほぼ完全にVB向けで書き直しただけです。
Public Class Form1 Async Sub progTest() Dim prog = New Progress(Of Integer)(AddressOf onProgressChanged) Dim task As Task = Task.Run( Sub() doSomething(prog) End Sub) Await task End Sub Sub doSomething(ByVal iProg As IProgress(Of Integer)) For ProgressCount As Integer = 1 To 100 Threading.Thread.Sleep(100) iProg.Report(ProgressCount) Next End Sub Sub onProgressChanged(ByVal ProgressCount As Integer) ProgressBar1.Value = ProgressCount End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click progTest() End Sub End Class