【问题标题】:Is there a best way to manage WPF UI when using Asynchronous execution commands?使用异步执行命令时是否有管理 WPF UI 的最佳方法?
【发布时间】:2023-03-25 09:16:01
【问题描述】:

在具有异步执行命令的 WPF 应用程序中管理表单是否有最佳方法?

1) 假设您有一个表单,其中用户 输入他的所有数据并点击确定 按钮保存更改。

2) 您的 WPF 应用程序启动异步 记录这些数据的方法。

3) 现在假设数据库服务器是 下来,手术正在进行中 大约 15 秒完成。在 这一次,用户已经关闭了 WPF 表单(他没有等待 交易完成)。

这就是我的问题:您如何控制何时让用户关闭或不关闭表单?

谢谢

【问题讨论】:

    标签: wpf user-interface asynchronous command execution


    【解决方案1】:

    简单的回答...在操作完成之前不要让用户关闭表单。

    您可以使用模态无限滚动进度条来完成此操作。它向用户提供您的应用程序正在做某事的反馈......但不会让用户关闭他们正在工作的窗口。

    这允许您在 UI 线程之外运行您的代码,然后当您的代码完成时(完成或出错),您可以向用户提供关于发生的事情的反馈(成功或发生了什么事情,他们需要再次保存) .

    【讨论】:

    • 我必须用我的应用程序来做这件事!谢谢
    【解决方案2】:

    我建议您在异步操作启动时禁用表单中的控件。这提供了表单状态已更改的即时反馈。但是,如果可以取消操作,您仍然应该允许用户取消/关闭表单。关闭表单应该会取消操作。

    如果您预计操作需要的时间超过几秒钟,您应该显示某种反馈,例如进度条。取消操作应该在与进度条视觉关联的控件上。

    请不要在操作成功完成时显示无用的模态消息框。不仅要等待操作,而且操作完成后还要点击“确定”,真的很烦人。

    David Poll has created an Activity control for Silverlight,您可能会从中获得一些灵感。

    【讨论】:

      猜你喜欢
      • 2018-02-24
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-13
      • 1970-01-01
      相关资源
      最近更新 更多