有没有最好的方法来管理具有异步执行命令的 WPF 应用程序中的表单?
1)假设您有一个表单,用户输入他的所有数据并单击“确定”按钮以保存更改。
2) 您的 WPF 应用程序启动一个异步方法来记录这些数据。
3) 现在假设数据库服务器已关闭,操作大约需要 15 秒才能完成。此时,用户已经关闭了 WPF 表单(他没有等待事务完成)。
所以这就是我的问题:您如何控制何时让用户关闭或不关闭表单?
谢谢你
有没有最好的方法来管理具有异步执行命令的 WPF 应用程序中的表单?
1)假设您有一个表单,用户输入他的所有数据并单击“确定”按钮以保存更改。
2) 您的 WPF 应用程序启动一个异步方法来记录这些数据。
3) 现在假设数据库服务器已关闭,操作大约需要 15 秒才能完成。此时,用户已经关闭了 WPF 表单(他没有等待事务完成)。
所以这就是我的问题:您如何控制何时让用户关闭或不关闭表单?
谢谢你
简单的回答...在操作完成之前不要让用户关闭表单。
您可以使用模态无限滚动进度条来完成此操作。它向用户提供您的应用程序正在做某事的反馈......但不会让用户关闭他们正在工作的窗口。
这允许您在 UI 线程之外运行您的代码,然后当您的代码完成时(完成或出错),您可以向用户提供有关发生的事情的反馈(成功或发生了什么事情,他们需要再次保存)。
我建议您在启动异步操作时禁用表单中的控件。这提供了表单状态已更改的即时反馈。但是,如果可以取消操作,您仍然应该允许用户取消/关闭表单。关闭表单应该会取消操作。
如果您希望操作花费的时间超过几秒钟,您应该显示某种反馈,例如进度条。然后应该在与进度条视觉关联的控件上取消操作。
请不要在操作成功完成时显示无用的模态消息框。不仅要等待操作,而且要在操作完成后单击“确定”,这真的很烦人。
David PollActivity
为 Silverlight 创建了一个控件,您可能会从中获得一些灵感。