gpt4 book ai didi

winforms - 如何在自己的线程上创建表单并在整个应用程序生命周期中保持其打开状态

转载 作者:行者123 更新时间:2023-12-02 21:45:51 26 4
gpt4 key购买 nike

我正在创建一个小测试组件,但遇到了问题

基本上,该组件是控制对数据库的所有访问的类上的装饰器,它创建一个带有两个按钮的表单:“模拟丢失连接”和“重新连接”。按下按钮,不再让函数调用通过包装器,而是开始抛出 NoConnectionException(),这很好很简单,并且对测试非常有帮助。

问题在于,此特定应用程序在检测到连接丢失时会引发模式对话框“连接丢失!”它会一直保留在那里,直到重新连接为止。因为它是模态的,所以我无法按下漂亮的按钮来模拟重新获得的连接。

因此,我需要做的是在不同的线程中运行我的小测试表单。我不太确定该怎么做。我试过了

new Thread(
new ThreadStart(
(Action)delegate {_form.Start();}
)
).Start();

但是一旦方法返回,线程就会关闭,因此除了瞬间之外,表单永远不会显示。

知道如何实现我想要的目标吗?

最佳答案

您需要在新创建的线程上启动消息循环。您可以通过调用 Application.Run(form) 来做到这一点。

关于winforms - 如何在自己的线程上创建表单并在整个应用程序生命周期中保持其打开状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/369790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com