由于应用程序中的内存泄漏导致其速度变慢,我需要释放资源,因此不确定如何处置此类。我不确定如何处置下面的类,因为某些属性未实现IDisposable。我对C#还是比较陌生,所以请尽量不要使响应过于复杂。

public class CellItem: IDisposable
    {
        private Timer foo = new Timer();

        public int MedicationDispenseId { get; set; }
        public Enumerations.Timeslot Timeslot { get; set; }
        public DateTime DateAdministered { get; set; }

        protected override void Dispose(bool disposing)
        {
            disposing = true;
            Dispose(disposing);
        }

    }

最佳答案

代码中有一个错误:

protected override void Dispose(bool disposing)
{
            disposing = true;
            Dispose(disposing);
}


是递归的,如果只是在堆空间用完之前要坐在那里一会儿。

要回答您的问题:如果是您的代码,则只需更改Dispose方法以释放适当的资源。如果不是,那么您将必须询问谁编写了它来修复它,或者考虑编写自己的版本(无错误)。

关于c# - 如何处理具有无法实现IDisposable的属性的类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18403536/

10-09 02:04