Best practice for controlling a busy GUI
Posted
by MPelletier
on Stack Overflow
See other posts from Stack Overflow
or by MPelletier
Published on 2010-03-27T21:46:34Z
Indexed on
2010/03/27
21:53 UTC
Read the original article
Hit count: 487
Suppose a GUI (C#, WinForms) that performs work and is busy for several seconds. It will still have buttons that need to remain accessible, labels that will change, progress bars, etc.
I'm using this approach currently to change the GUI when busy:
//Generic delegates
private delegate void SetControlValue<T>(T newValue);
//...
public void SetStatusLabelMessage(string message)
{
if (StatusLabel.InvokeRequired)
StatusLabel.BeginInvoke(new SetControlValue<string>(SetStatusLabelMessage, object[] { message });
else
StatusLabel.Text = message;
}
I've been using this like it's going out of style, yet I'm not quite certain this is proper. Creating the delegate (and reusing it) makes the whole thing cleaner (for me, at least), but I must know that I'm not creating a monster...
© Stack Overflow or respective owner