假设一个GUI(C#,WinForms)执行工作并且忙了几秒钟.它仍然会有需要保持可访问的按钮,会改变的标签,进度条等.
我现在正在使用这种方法在忙时更改GUI:
//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;
}
Run Code Online (Sandbox Code Playgroud)
我一直在使用它,因为它已经过时了,但我不太确定这是否合适.创建委托(并重用它)使整个事情更清洁(至少对我来说),但我必须知道我不是在创造一个怪物......