Tag: dispose

在处理控件时避免调用Invoke

我的工作线程中有以下代码(下面的ImageListView是从Control派生的): if (mImageListView != null && mImageListView.IsHandleCreated && !mImageListView.IsDisposed) { if (mImageListView.InvokeRequired) mImageListView.Invoke( new RefreshDelegateInternal(mImageListView.RefreshInternal)); else mImageListView.RefreshInternal(); } 但是,我有时会使用上面的Invoke方法获得ObjectDisposedException 。 看来控件可以在我检查IsDisposed和我调用Invoke 。 我怎么能避免这种情况?

什么是IDisposable?

如果.NET有垃圾收集,那你为什么要显式调用IDisposable ?