c# - 当我对表单加载进行一些检查时,如何显示类似 "loading.."的内容?

标签 c# .net events

我对表单加载做了一些检查,但它会将表单锁定一段时间(几千分之一秒)。出于这个原因,我想显示一条消息,例如“正在加载应用程序..”,但我不知道该怎么做。我希望这清楚!非常感谢任何帮助。提前致谢。

最佳答案

理想情况下,您要做的是在后台线程上执行检查,这样 UI 线程就不会被阻塞。看看 BackgroundWorker类。

您应该将检查挂接到后台工作程序的 DoWork 事件,并从 Form_Load 事件调用 BackgroundWorker 的 RunWorkerAsync() 方法以启动后台工作。

像这样的东西(注意,这是未经测试的):

BackgroundWorker bw = new BackgroundWorker();
public void Form_Load(Object sender, EventArgs e) {
    // Show the loading label before we start working...
    loadingLabel.Show();
    bw.DoWork += (s, e) => {
       // Do your checks here
    }
    bw.RunWorkerCompleted += (s, e) => { 
       // Hide the loading label when we are done...
       this.Invoke(new Action(() => { loadingLabel.Visible = false; })); 
    };
    bw.RunWorkerAsync();
}

关于c# - 当我对表单加载进行一些检查时,如何显示类似 "loading.."的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864642/

相关文章:

c# - 在Linux上使用docfx.console nuget软件包

相关元素上的 JavaScript 事件

C# 从具有约束的泛型推断类型

java - 在 Android/Java 中实现类 C# 事件

c# - 使用 Linq 展平 C# 列表字典

.net - 如何从类属性中访问 web.config 值?

c# - XDocument.Save 方法中的问题

c# - .NET 的替代方案提供了关于 uris 和 url 的 api

c# - 正则表达式。仅替换正则表达式的一部分

c# - 将散列密码存储为 UTF8 字符串的含义?