using System;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
namespace test_acad_Dispose
{
class MyClass : IDisposable {
bool disposed = false;
private Line Ln = null;
public MyClass() {
Ln = new Line(new Point3d(0, 0, 0),
new Point3d(1, 1, 1));
}
public void Dispose() {
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposed)
return;
if (disposing)
Ln.Dispose(); // Вот тут ругается
disposed = true;
}
}
class Program
{
static void Main()
{
int cnt = 100000;
MyClass[] obj = new MyClass[cnt];
for (int i=0; i<cnt; i++)
obj[i] = new MyClass();
for (int i = 0; i < cnt; i++)
obj[i].Dispose();
Console.ReadKey();
}
}
}