使用C#:我有一个类“MsgBox”,一个特殊的Message Box格式化为我的应用程序。它运行在一个实例上,关键是当我打电话时:'new MsgBox(“Message Text”);'它会暂停调用线程,直到表单获得响应/关闭或其他什么。我尝试在另一个线程上运行Form并使用Thread.Suspend()/ Resume()并将整个计算机冻结两到三秒,然后工作正常。与Thread.Join()相同。有没有更有效的方法来保持线程?
答案 0 :(得分:4)
您可以使用Form.ShowDialog方法在应用程序中显示模式对话框。调用此方法时,直到关闭对话框后才会执行其后面的代码。
通过将对话框分配给窗体上Button的DialogResult属性,或者通过在代码中设置窗体的DialogResult属性,可以为对话框分配DialogResult枚举的值之一。然后,此方法返回此值。您可以使用此返回值来确定如何处理对话框中发生的操作。例如,如果关闭对话框并通过此方法返回DialogResult.Cancel值,则可能会阻止执行ShowDialog调用后的代码。