有没有办法可以从 Dispose 方法中取消处理,换句话说,在调用 A.Dispose() 时不处理 A。
更新 我没有很好地解释,因为我想不出一种很好的表达方式。我所拥有的是一个在单独线程中运行的弹出窗口中显示进度条(选取框)的类。当创建进度弹窗时,会返回一个类似控制器的一次性对象,所以我们可以这样做:
using (var progress = Dialogs.ShowProgress("Please wait..."))
{
// do lots of stuff here
progress.UpdateStatus("Please wait some more...");
// do more stuff
}
当 using 块退出时,进度窗口将关闭并销毁。
现在我遇到这样的情况,在这个块中发生的事情也创建了一个进度窗口,而不是返回一个新对象并创建一个新窗口,我想返回第一个实例创建的对象,并且只有在第一个实例处理后才销毁它.
更新
好的,我所做的是在每次Dialogs.ShowProgress()
调用时创建一个新的 IDisposable 对象,并将原始控制器对象附加到它上面。这些对象一旦完成就会被处理掉,而控制器只有在它是唯一需要处理的对象时才会被处理掉。