Wymuś aktualizację interfejsu GUI z wątku interfejsu użytkownika

W WinForms, jak wymusić natychmiastową aktualizację interfejsu użytkownika z wątku interfejsu użytkownika?

To co robię jest z grubsza:

label.Text = "Please Wait..."
try 
{
    SomewhatLongRunningOperation(); 
}
catch(Exception e)
{
    label.Text = "Error: " + e.Message;
    return;
}
label.Text = "Success!";

Tekst etykiety nie jest ustawiony na „Proszę czekać ...” przed operacją.

Rozwiązałem ten problem za pomocą innego wątku dla operacji, ale robi się coraz bardziej włochaty i chciałbym uprościć kod.

questionAnswers(11)

yourAnswerToTheQuestion