gpt4 book ai didi

c# - 控制繁忙 GUI 的最佳实践

转载 作者:行者123 更新时间:2023-11-30 19:13:50 31 4
gpt4 key购买 nike

假设一个 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;
}

我一直在使用它,好像它已经过时了,但我不太确定这是否合适。创建委托(delegate)(并重用它)使整个事情变得更清晰(至少对我而言),但我必须知道我不是在创造一个怪物......

最佳答案

另一种选择是使用 BackgroundWorker并使用 ReportProgress当您需要更新 GUI 时。这将为您处理调用,因此您不必担心。

关于c# - 控制繁忙 GUI 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2531071/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com