public void Execute(ISchematicLayer schematicLayer, ITrackCancel CancelTracker)
{
if (schematicLayer == null)
return;
// Before Execute part
ISchematicInMemoryDiagram inMemoryDiagram;
inMemoryDiagram = schematicLayer.SchematicInMemoryDiagram;
// Core algorithm
InternalExecute(schematicLayer, inMemoryDiagram, CancelTracker);
// Release the COM objects
if (inMemoryDiagram != null)
while (System.Runtime.InteropServices.Marshal.ReleaseComObject(inMemoryDiagram) > 0) { }
while (System.Runtime.InteropServices.Marshal.ReleaseComObject(schematicLayer) > 0) { }
}