I am trying to update a label from a BackgroundWorker thread that calls a method from another class outside the Form. So I basically want to do this:
MainForm.counterLabel.Text = Counter.ToString();
but the label is private. I have looked into things like using BackgroundWorker's progressupdate function, invoke, etc but they don't seem to be what I need.
here is some more of my code:
the MainForm:
clickThread.DoWork += (s, o) => { theClicker.Execute(speed); };
clickThread.RunWorkerAsync();
The Class/Method called:
public void Execute(int speed)
{
while (running)
{
Thread.Sleep(speed);
Mouse.DoMouseClick();
Counter++;
//Update UI here
}
}
I think I have overly complicated my code a bit : and backed myself into a corner.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…