我有一个类,它生成另一个UI线程并执行其任务。当父类被销毁时,我需要终止该线程并清理它。那么如何知道我的父类何时被销毁?
作为C++程序员,我的第一个想法是将此代码放在析构函数中。但是C#实际上没有析构函数 - 只有finalizers和dispose - 从我所了解的情况来看,这些可能会或可能不会被调用(我猜这取决于GC的心情?)。
如果您可能或可能不想释放资源,那就很好和简单。
但是,您应该将必须被执行的代码放在哪里,无论何时对象被销毁?
作为C++程序员,我的第一个想法是将此代码放在析构函数中。但是C#实际上没有析构函数 - 只有finalizers和dispose - 从我所了解的情况来看,这些可能会或可能不会被调用(我猜这取决于GC的心情?)。
如果您可能或可能不想释放资源,那就很好和简单。
但是,您应该将必须被执行的代码放在哪里,无论何时对象被销毁?
IDisposable
/using
来处理它。但是没有办法强制调用.Dispose()
,就像在C++中没有办法强制客户端销毁一个对象一样。 - recursive