桂忙着弹出
我有一个gui。 当我按下按钮时,我的gui与软件交互。 这需要几秒钟。 在这段时间里,我想要一个对话框,弹出或类似的东西出现在我的gui面前,告诉用户等待(带有消息)。 当gui与软件的交互完成后,弹出窗口自动关闭,用户可以再次正常与gui交互。
有没有办法做到这一点?
诀窍是剥离一个线程,以免绑定UI线程。 这通常通过BackgroundWorker实现。
有一个演练用于在codeplex上设置所有这些。 当backgroundworker完成时,加载表单将关闭。
以下简要介绍如何使用BackgroundWorker组件完成此操作。
将BackgroundWorker放到表单上,然后在按钮的Click处理程序中显示当前表单上方的弹出指示器Form,并使用RunWorkerAsync方法启动工作程序。 处理工作者DoWork事件,并处理程序,运行长时间运行的任务。 还处理工作人员已完成的事件(现在不确定它是如何完全调用的),然后隐藏弹出窗体。 您可以在DoWork事件eventargs(Result属性)中跟踪操作结果,还可以在长时间运行的任务期间使用已完成的事件eventarg的Error peroperty捕获任何exception。 可以使用worker的ReportProgress方法在DoWork处理程序中报告操作进度,并且可以使用worker的相应事件在GUI中捕获它。
您还可以将鼠标光标设置为在长时间运行之前等待
this.Cursor = Cursors.WaitCursor;
并且恢复正常,然后就完成了
this.Cursor = Cursors.Default;
- 无法让Log4Net在我们的WCF应用程序中运行
- 无法处理消息,因为内容类型为’application / json; charset = utf-8’不是预期的类型’text / xml; 字符集= UTF-8′
- 无法将数据列从一个数据表复制到另一个数据表
- 运行.net应用程序而不安装.net客户端配置文件?
- DateTimeStyles.RoundtripKind枚举是什么意思?
- 更新EF 6中的现有数据会引发exception – “…相同类型的实体已具有相同的主键值”。
- 用户活动记录,遥测(以及全局exception处理程序中的变量)
- 用户右键单击时打开所有文件并选择“打开方式”
- 以UTF-16编码格式反序列化xml文件时出现XmlException