【问题标题】:Execute code during winform progress bar runningwinform进度条运行期间执行代码
【发布时间】:2014-04-25 14:41:21
【问题描述】:

我有一个小的 winform 应用程序,我在第一个运行的表单上放了一个进度条。此进度条在 10 秒内完成,在进度条完成后,下一个活动开始,如数据库调用。

我希望当这个进度条运行 10 秒时,在此期间数据库调用应该完成它的工作,而不是在进度条完成后调用。

任何人都可以解释或有示例代码来解释这种技术吗??? 提前致谢。

【问题讨论】:

  • 请展示一些代码到目前为止您尝试过什么?

标签: c# vb.net winforms


【解决方案1】:

您的问题可能源于您在用户界面线程上运行繁重的工作,因此基本上您阻止该线程执行任何操作。

要解决此问题,您需要在单独的线程上运行,并在需要更新时Control.Invoke 进度条控件。

在 VS 杂志上查看Threading and the UI

【讨论】:

    【解决方案2】:

    你需要使用后台工作者!

    在后台工作线程和 UI 线程中执行繁重的操作以保持进度条运行。

    你应该找到很多关于后台工作器使用的例子,这里有一些:

    http://www.dotnetperls.com/backgroundworker

    https://stackoverflow.com/a/15153258/2243584

    【讨论】:

      【解决方案3】:

      那里有很多很好的多线程教程可以详细解释这个问题。谷歌搜索“winforms 线程同步”this 是第一个出现的。挺好的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多