I'm trying to get a simple label value to change from another thread, and already tried 3 different threading mechanisms (Tasks, Thread, Background worker) and am now at a loss why the control won't update.
I have a method in an unrelated class like this:
 public static void SetOverlayText(string text, bool fade = false)
      {
         Thread myThread = new Thread(FadeOverlayText);
         OverlayForm.SetLabelText(text);
         if (fade)
         {
            myThread.Start();
         }
      }
and
private static void FadeOverlayText()
      {
        OverlayForm.ClearLabelText();
      }
My form is a regular windows form and has that method:
public void ClearLabelText()
      {
         this.Invoke((MethodInvoker)delegate
         {
            StatusText.Text = "Something should happen"
            StatusText.Refresh();
         });
      }
The method appears to be getting called, but nothing happens.
 
     
    