RaiseEvent ProgressChanged(Me, EventArgs.Empty)Įnd ClassThat works exactly the same way from the user's perspective and all we've done is reafctor to pull the long-running task out of the form and put it in its own class (which is definitely not a bad thing). ![]() Public Event ProgressChanged As EventHandler Private Sub IOWorker_ProgressChanged(sender As Object, e As EventArgs)īgw.ReportProgress(DirectCast(sender, IOWorker).Progress) Private Sub GenNewPlayersASync() Dim x As Integer 0 Generate the Players on an Async Thread For i As Integer 1 To NumPlayers x i (Sub() CollegePlayers.GenDraftPlayers(x, MyDraft, DraftDT, DraftClass, PosCount)). RemoveHandler worker.ProgressChanged, AddressOf IOWorker_ProgressChanged Private Sub BackgroundWorker_DoWork(sender As Object, e As DoWorkEventArgs)īgw = DirectCast(sender, BackgroundWorker)ĪddHandler worker.ProgressChanged, AddressOf IOWorker_ProgressChanged ProgressBar And MultiThreading in VB.Net (+ cross thread operation not valid) UPDATED. ![]() Using dialogue As New ProgressDialogue(AddressOf BackgroundWorker_DoWork) Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
0 Comments
Leave a Reply. |