关于 无法访问已释放的对象?

vlsm 2009-06-08 05:23:14
一个FORM,FORM中一个按钮,一个TEXTBOX:
button 事件

Private Sub btnOutput_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

btnLogin.Click
Dim myThreadStart As Threading.ThreadStart = New Threading.ThreadStart(AddressOf _OutPutMessage)
Dim myThread As Threading.Thread = New Threading.Thread(myThreadStart)
myThread.Start()

End Sub

执行后:

不断向Textbox输出信息。

执行过程中,强行关闭form,会出现以上的错误,有什么办法能避免吗?

目前我只能用Try 。。 Catch 。。end try 时间来处理


System.ObjectDisposedException: 无法访问已释放的对象。
对象名:“TextBox”。
在 System.Windows.Forms.Control.CreateHandle()
在 System.Windows.Forms.TextBoxBase.CreateHandle()
在 System.Windows.Forms.TextBoxBase.SetSelectedTextInternal(String text, Boolean clearUndo)
在 System.Windows.Forms.TextBoxBase.set_SelectedText(String value)
在 System.Windows.Forms.TextBoxBase.AppendText(String text)
在 HtmlAnalysis.MainForm.OutPutMessage(String _x, String _y, String _qty, String _soldier) 位置 D:\程

序代码\HtmlAnalysis\HtmlAnalysis\MainForm.vb:行号 115
在 HtmlAnalysis.MainForm.OutPutMessage() 位置 D:\程序代码\HtmlAnalysis\HtmlAnalysis\MainForm.vb:行号

149



...全文
1250 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
光宇广贞 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hikaliv 的回复:]
你把线程设为 background线程,就不会再有问题了。

thread.IsBackground = true;
[/Quote]

只要将所新开的线程都设为此“后台”线程,那么你便可以放心地关闭主线程了。这是最方便的方法。
jun_chen 2009-06-08
  • 打赏
  • 举报
回复
在关闭主线程时,需要关闭该线程上开启的其他线程,否则,程序还是在运行
光宇广贞 2009-06-08
  • 打赏
  • 举报
回复
你把线程设为 background线程,就不会再有问题了。

thread.IsBackground = true;
a12321321321312321 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wjq 的回复:]
因为你另外开了一个线程,当你关掉窗口,新开的线程还没结束,还是在访问你的窗口。所以应该如1楼所说,在Form关闭的时候先Abort掉这个线程。
[/Quote]
同意
cnzdgs 2009-06-08
  • 打赏
  • 举报
回复
在关闭窗口时结束线程,或者在向Textbox输出信息之前检查窗口是否有效。
wjq 2009-06-08
  • 打赏
  • 举报
回复
因为你另外开了一个线程,当你关掉窗口,新开的线程还没结束,还是在访问你的窗口。所以应该如1楼所说,在Form关闭的时候先Abort掉这个线程。
tangyong12 2009-06-08
  • 打赏
  • 举报
回复
你可以把线程定义成全局的变量,然后在form closing事件中先取消线程

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧