inkedgfx
Well-known member
I added a backgroundworker to my lottery number generator program..everything is working fine but the backgroundworker keeps working even if all the games are picked....
for example:
the user has the option to choose from 1 to 6 games to generate...each game generates 6 unique numbers...once the worker picks the numbers the labels display the numbers for each game...this works fine , once all the labels are filled with the numbers the worker continues to pick numbers and changes the labels with different numbers.....below is the code I have for the worker.....
what I want the worker to do is stop when all the games are picked.the last bit of the backgroundworker_dowork I added a for loop to calculate the progress..which doesnt work either.
any help would be appreciated
Thank You
InkedGFX
for example:
the user has the option to choose from 1 to 6 games to generate...each game generates 6 unique numbers...once the worker picks the numbers the labels display the numbers for each game...this works fine , once all the labels are filled with the numbers the worker continues to pick numbers and changes the labels with different numbers.....below is the code I have for the worker.....
Private Sub BackgroundWorker1_DoWork(sender As Object, e As ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim HowMany As Integer
frmNumbers.Show()
HowMany = Me.NumericUpDown1.Value
frmNumbers.Label1.Visible = False
frmNumbers.Label2.Visible = False
frmNumbers.Label3.Visible = False
frmNumbers.Label4.Visible = False
frmNumbers.Label5.Visible = False
frmNumbers.Label6.Visible = False
If HowMany = "1" Then
frmNumbers.Label1.Visible = True
frmNumbers.Label11.Text = HowMany & " Game Generated!"
frmNumbers.Text = HowMany & " Game Generated!"
RandomUnique(frmNumbers.Label1)
frmNumbers.Label1.Text = frmNumbers.Label1.Text.Substring(0, frmNumbers.Label1.Text.Length - 2)
End If
If HowMany = "2" Then
frmNumbers.Label1.Visible = True
frmNumbers.Label2.Visible = True
frmNumbers.Label11.Text = HowMany & " Games Generated!"
frmNumbers.Text = HowMany & " Games Generated!"
RandomUnique(frmNumbers.Label1)
frmNumbers.Label1.Text = frmNumbers.Label1.Text.Substring(0, frmNumbers.Label1.Text.Length - 2)
' RandomUniqueTwo(Label2)
' Label2.Text = Label2.Text.Substring(0, Label2.Text.Length - 2)
Do Until frmNumbers.Label2.Text < frmNumbers.Label1.Text
RandomUniqueTwo(frmNumbers.Label2)
frmNumbers.Label2.Text = frmNumbers.Label2.Text.Substring(0, frmNumbers.Label2.Text.Length - 2)
Loop
End If
If HowMany = "3" Then
frmNumbers.Label1.Visible = True
frmNumbers.Label2.Visible = True
frmNumbers.Label3.Visible = True
frmNumbers.Label11.Text = HowMany & " Games Generated"
frmNumbers.Text = HowMany & " Games Generated!"
RandomUnique(frmNumbers.Label1)
frmNumbers.Label1.Text = frmNumbers.Label1.Text.Substring(0, frmNumbers.Label1.Text.Length - 2)
Do Until frmNumbers.Label2.Text < frmNumbers.Label1.Text
RandomUniqueTwo(frmNumbers.Label2)
frmNumbers.Label2.Text = frmNumbers.Label2.Text.Substring(0, frmNumbers.Label2.Text.Length - 2)
Loop
Do Until frmNumbers.Label3.Text < frmNumbers.Label2.Text
RandomUnique(frmNumbers.Label3)
frmNumbers.Label3.Text = frmNumbers.Label3.Text.Substring(0, frmNumbers.Label3.Text.Length - 2)
Loop
Application.DoEvents()
End If
If HowMany = "4" Then
frmNumbers.Label1.Visible = True
frmNumbers.Label2.Visible = True
frmNumbers.Label3.Visible = True
frmNumbers.Label4.Visible = True
frmNumbers.Label11.Text = HowMany & " Games Generated"
frmNumbers.Text = HowMany & " Games Generated!"
RandomUnique(frmNumbers.Label1)
frmNumbers.Label1.Text = frmNumbers.Label1.Text.Substring(0, frmNumbers.Label1.Text.Length - 2)
Do Until frmNumbers.Label2.Text < frmNumbers.Label1.Text
RandomUniqueTwo(frmNumbers.Label2)
frmNumbers.Label2.Text = frmNumbers.Label2.Text.Substring(0, frmNumbers.Label2.Text.Length - 2)
Loop
Do Until frmNumbers.Label3.Text < frmNumbers.Label2.Text
RandomUnique(frmNumbers.Label3)
frmNumbers.Label3.Text = frmNumbers.Label3.Text.Substring(0, frmNumbers.Label3.Text.Length - 2)
Loop
Do Until frmNumbers.Label4.Text < frmNumbers.Label3.Text
RandomUnique(frmNumbers.Label4)
frmNumbers.Label4.Text = frmNumbers.Label4.Text.Substring(0, frmNumbers.Label4.Text.Length - 2)
Loop
Application.DoEvents()
End If
If HowMany = "5" Then
frmNumbers.Label1.Visible = True
frmNumbers.Label2.Visible = True
frmNumbers.Label3.Visible = True
frmNumbers.Label4.Visible = True
frmNumbers.Label5.Visible = True
frmNumbers.Label11.Text = HowMany & " Games Generated"
frmNumbers.Text = HowMany & " Games Generated!"
RandomUnique(frmNumbers.Label1)
frmNumbers.Label1.Text = frmNumbers.Label1.Text.Substring(0, frmNumbers.Label1.Text.Length - 2)
Do Until frmNumbers.Label2.Text < frmNumbers.Label1.Text
RandomUniqueTwo(frmNumbers.Label2)
frmNumbers.Label2.Text = frmNumbers.Label2.Text.Substring(0, frmNumbers.Label2.Text.Length - 2)
Loop
Do Until frmNumbers.Label3.Text < frmNumbers.Label2.Text
RandomUnique(frmNumbers.Label3)
frmNumbers.Label3.Text = frmNumbers.Label3.Text.Substring(0, frmNumbers.Label3.Text.Length - 2)
Loop
Do Until frmNumbers.Label4.Text < frmNumbers.Label3.Text
RandomUnique(frmNumbers.Label4)
frmNumbers.Label4.Text = frmNumbers.Label4.Text.Substring(0, frmNumbers.Label4.Text.Length - 2)
Loop
Do Until frmNumbers.Label5.Text < frmNumbers.Label4.Text
RandomUnique(frmNumbers.Label5)
frmNumbers.Label5.Text = frmNumbers.Label5.Text.Substring(0, frmNumbers.Label5.Text.Length - 2)
Loop
Application.DoEvents()
End If
For i As Integer = 1 To HowMany - 1
If HowMany = "6" Then
frmNumbers.Label1.Visible = True
frmNumbers.Label2.Visible = True
frmNumbers.Label3.Visible = True
frmNumbers.Label4.Visible = True
frmNumbers.Label5.Visible = True
frmNumbers.Label6.Visible = True
frmNumbers.Label11.Text = HowMany & " Games Generated"
frmNumbers.Text = HowMany & " Games Generated!"
RandomUnique(frmNumbers.Label1)
frmNumbers.Label1.Text = frmNumbers.Label1.Text.Substring(0, frmNumbers.Label1.Text.Length - 2)
Do Until frmNumbers.Label2.Text < frmNumbers.Label1.Text
RandomUniqueTwo(frmNumbers.Label2)
frmNumbers.Label2.Text = frmNumbers.Label2.Text.Substring(0, frmNumbers.Label2.Text.Length - 2)
Loop
Application.DoEvents()
Do Until frmNumbers.Label3.Text < frmNumbers.Label2.Text
RandomUnique(frmNumbers.Label3)
frmNumbers.Label3.Text = frmNumbers.Label3.Text.Substring(0, frmNumbers.Label3.Text.Length - 2)
Loop
Application.DoEvents()
Do Until frmNumbers.Label4.Text < frmNumbers.Label3.Text
RandomUnique(frmNumbers.Label4)
frmNumbers.Label4.Text = frmNumbers.Label4.Text.Substring(0, frmNumbers.Label4.Text.Length - 2)
Loop
Application.DoEvents()
Do Until frmNumbers.Label5.Text < frmNumbers.Label4.Text
RandomUnique(frmNumbers.Label5)
frmNumbers.Label5.Text = frmNumbers.Label5.Text.Substring(0, frmNumbers.Label5.Text.Length - 2)
Loop
Application.DoEvents()
Do Until frmNumbers.Label6.Text < frmNumbers.Label5.Text
RandomUnique(frmNumbers.Label6)
frmNumbers.Label6.Text = frmNumbers.Label6.Text.Substring(0, frmNumbers.Label6.Text.Length - 2)
Loop
Application.DoEvents()
BackgroundWorker1.ReportProgress(i)
End If
Next
End Sub
Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
frmNumbers.ProgressBar1.Value = e.ProgressPercentage
frmNumbers.lblPercentDone.Text = frmNumbers.lblPercentDone.Text & " %"
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
Dim HowMany As Integer
HowMany = Me.NumericUpDown1.Value
frmNumbers.ProgressBar1.Value = 0
frmNumbers.lblgenerating.Text = HowMany & " Games Generated"
End Sub
what I want the worker to do is stop when all the games are picked.the last bit of the backgroundworker_dowork I added a for loop to calculate the progress..which doesnt work either.
any help would be appreciated
Thank You
InkedGFX