public void Dispose() { xAxis = null; yAxis = null; disabledPen?.Dispose(); disabledPen = null; dfEventInfo = null; dfRenderer?.Dispose(); dfRenderer = null; dfLine = null; dfRect = null; dfAreaF = null; dfArea = null; dfEventArgs = null; sysFont = null; imageProcessor?.Dispose(); imageProcessor = null; IsClosing = true; lock (Sync) { foreach (var dict in Objects.Values) { foreach (var item in dict.Values.OfType <IDisposable>()) { item.Dispose(); } dict.Clear(); } Objects.Clear(); newIDs.Clear(); } Dispose2(); }