C# 首先显示状态栏以显示进度

C# 首先显示状态栏以显示进度,c#,C#,我正在创建一个c窗口窗体,我遇到了一个问题 当窗口打开时,我想运行一些代码,使前控制台看起来冻结。代码运行正常,但我想在页面底部的状态条中显示程序的状态。我正在以action Form.show运行代码。但是,在显示所有内容之前,代码不会更新状态栏。我可以换标签,没问题 我如何加载窗口,然后像后台任务一样运行代码和更新状态栏 我需要查看哪些方面才能获得这些信息?您可以使用 将WorkerReportsProgress属性设置为true,并在DoWork eventhandler中引发Report

我正在创建一个c窗口窗体,我遇到了一个问题

当窗口打开时,我想运行一些代码,使前控制台看起来冻结。代码运行正常,但我想在页面底部的状态条中显示程序的状态。我正在以action Form.show运行代码。但是,在显示所有内容之前,代码不会更新状态栏。我可以换标签,没问题

我如何加载窗口,然后像后台任务一样运行代码和更新状态栏

我需要查看哪些方面才能获得这些信息?

您可以使用

将WorkerReportsProgress属性设置为true,并在DoWork eventhandler中引发ReportProgress事件

在ProgressChanged的eventhandler中,放置更新ProgressBar的逻辑


您可以使用

上的一个示例来避免冻结表单。这意味着,将表单和要在不同线程中并行运行的代码分开,这样表单就不会等待代码完成。您可以通过事件监视代码的进度

您可以使用Application.DoEvent,但我建议您使用BackgroundWorker您建议在哪里启动后台进程?在chown事件中?取决于您希望流程何时启动如果您希望流程仅在显示表单时启动使用显示的事件,如果您希望流程在创建表单时启动在构造函数中执行,请注意,我正在尝试更新复选框列表,为其分配更多项,但会产生错误。这个.checklist.Items.Addlistarray[j];这就是我想要做的,显然我需要使它线程安全。你知道怎么做吗?那是因为你无法访问使用不同线程添加的控件,你可能可以使用表单的线程使用该方法在表单的线程上安全地执行逻辑,如果我的答案帮助你,请将其标记为答案我知道如何做,我会在测试时标记,我知道它是有效的