当我通过单击 F5( Debug模式)运行我的 Visual Studio Windows 窗体应用程序时,在我单击关闭按钮(调用 Application.Exit()
)后,几秒钟后
我收到一条错误消息:
cannot acess a disposed object: Object name 'SampleForm'.
一些背景知识,我有另一个线程每 x 秒运行一次。
我的猜测是,当我关闭应用程序时,由于它仍处于 Debug模式,另一个线程仍在运行并尝试访问某些内容 但是由于我关闭了应用程序,所以表格被处理掉了。
这是正确的吗?
我是否必须在调用 Application.Exit()
之前终止后台进程线程?
更新
现在,当我在调用 Application.Exit()
之前调用 thread.Abort()
时,应用程序将完全关闭。之前,即使在我单击关闭按钮之后,调试器仍在运行(即未选择停止按钮),所以这一定是因为线程仍然处于事件状态。
最佳答案
将您的线程标记为 BackgroundThread,它会在您关闭窗口后立即停止运行。
关于winforms - 为什么我在关闭 Windows 窗体应用程序后会收到错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/162962/