【发布时间】:2011-03-26 05:01:02
【问题描述】:
假设我在异步套接字上收到了一些信息(因此退出了一些后台线程),这些信息不断更新表单。如何安全地更新表单内容,以避免在关闭表单时有时会抛出 ObjectDisposedException ?
在更新操作(在后台线程上进行)中,我检查表单的属性 IsDisposed,但这没有用,因为 UI 线程有时会在检查后立即处理表单,并且在更新操作之前立即处理导致异常被抛出(当我关闭表格时) 我尝试在表单的“onScreenFormClosed”处理程序和更新操作中对表单对象使用锁定,以确保这些操作不会同时执行,但这会阻塞 UI 线程。
我什至尝试在 UI 线程上运行更新操作,但它没有用,因为在表单上调用 Invoke(...) 仍然抛出 ObjectDisposedException 。
【问题讨论】:
-
有什么理由不能捕捉到那个异常吗?