【发布时间】:2021-12-25 22:28:37
【问题描述】:
我的目标是在类库 (.dll) 中拥有一个方法
首先我们实例化类,然后调用方法。
这个方法会:
- 绘制一个简单的 GUI(两个按钮)。
- 停止执行并等待用户点击按钮 1 或按钮 2。
- 继续执行并根据按下的按钮返回一个值。
执行步骤 3 后,实例化的类将被销毁。
这个类库是在不同的环境中实例化的,该方法只能被调用1次。
我的实际阻塞点是:
- 如果我在代码中使用一段时间,GUI 将冻结。
- 如果我使用线程,代码将继续执行,不会等待用户输入。
我的问题是:
你如何处理这种情况?是否有针对此类用例的指南或预定义架构?
谢谢。
【问题讨论】:
-
这应该是 windows 窗体还是 wpf?对我来说,这听起来像是显示一个模式对话框,这也会“停止”调用者的执行。
-
这必须是定制的 .net framework windows 窗体。
-
系统必须在需要时重新绘制,不是吗?
-
不需要重绘。仅溺水1次。
-
在我的解释点 2 中,代码停止执行,直到用户单击按钮。这是模态对话框的典型案例。只需创建一个表单,向其添加按钮并使用Form.ShowDialog 显示该表单。在按钮的单击事件处理程序中关闭表单。
标签: c# user-interface dll freeze