【问题标题】:How to show and hide the "Please wait" message for user如何为用户显示和隐藏“请稍候”消息
【发布时间】:2011-05-12 01:59:55
【问题描述】:

我有一段代码在 GUI 线程上执行了一段时间(为了简化,我们假设在 Button_Click 事件中)。

当方法启动时,我想显示一条消息“请稍候”,然后继续工作。工作完成后,我将隐藏消息并继续。

我知道我可以使用 BackgroundWorker(或任何其他与 Thread 相关的)来做到这一点,但我希望已经完成了一些事情,例如:

MBox.Show("Please wait...");
//do my work...
MBox.Hide();

【问题讨论】:

  • 你不想在主 UI 线程上工作......它会锁定你的界面并使你的应用看起来像是崩溃了。如果它不是微不足道的,请始终在后台线程上执行此操作。更重要的是,使用 MessageBox 时,用户无法知道您的任务将运行多长时间,如果可能的话,您真的想要一个进度条。

标签: c# winforms messagebox


【解决方案1】:

如果您有一些长时间运行的进程,则不应在 UI 线程中执行此操作。 BackgoundWorker 有什么问题?那堂课太棒了!如果这是一个 WinForms 应用程序,我建议您使用它。

【讨论】:

    【解决方案2】:

    如果您使用 .Net 4,您可以运行 Task 与后台工作人员一起工作,否则您可以进行线程处理,但它们不应该在同一个线程中。

    【讨论】:

      【解决方案3】:

      您可以创建自己的表单来执行此操作。如果用户希望等待或被要求等待,那么让用户等待本身并没有什么坏处。我们有正常工作流程需要短暂等待的应用程序。将它放在后台线程中对用户没有帮助,因为他们仍然需要等待操作完成才能执行其他任何操作。

      【讨论】:

        猜你喜欢
        • 2012-09-12
        • 2014-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-06
        • 2015-01-17
        • 1970-01-01
        相关资源
        最近更新 更多