Just wondering why this code blocks:
While this code does not block:Code:Public Class Form1 Dim rand As New Random Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork For i = 0 To 500000 BackgroundWorker1.ReportProgress(1, rand.Next(0, 10000)) Next End Sub Private Sub BackgroundWorker1_ProgressChanged(sender As System.Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged TextBox1.Text = e.UserState End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click BackgroundWorker1.RunWorkerAsync() End Sub End Class
Code:Public Class Form1 Dim rand As New Random Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork For i = 0 To 500000 TextBox1.Invoke(Sub() TextBox1.Text = rand.Next(0, 10000) End Sub) Next End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click BackgroundWorker1.RunWorkerAsync() End Sub End Class




Reply With Quote
