sf.Labels.Generate("[CITY_NAME]", MapWinGIS.tkLabelPositioning.lpFirstSegment, True)
or similar the Private bytes used goes up. sf.labels.clear does not reduce this. For 2000 labels I see an increase of around 5Mb. Clearly after a short period of changing labels and regenerating them I run out of memory. Is there a way to generate just the one label I change at a time?
Comments: ** Comment from web user: sleschinski **
Reviewing it before 4.9.3 beta release: I've just checked memory leaking for related issue https://mapwingis.codeplex.com/workitem/24278 - found nothing. I also checked the code below with Deleaker (first labels are generated, then regenerated couple of times + some zooming of map). Still nothing. Since I've done quite a lot of leak hunting recently, I assume that the issue was fixed, either now or earlier.
As for generating/updating one label at time, it's possible - Labels.get_Label(labelIndex, 0).Text = "new value" or Labels.AddLabel(...).
Test code I used:
```
private void btnLabelLeak_Click(object sender, EventArgs e)
{
string filename = @"D:\mw\MapWinGis\TestData\MapWindow-Projects\UnitedStates\Shapefiles\cities.shp";
var sf = new Shapefile();
if (!sf.Open(filename))
{
MessageBox.Show("File not found: " + filename);
}
else
{
int count = sf.Labels.Generate("[City_Name]", tkLabelPositioning.lpCenter, true);
MessageBox.Show("Number of labels generated: " + count);
axMap1.AddLayer(sf, true);
}
}
private void btnRegenerate_Click(object sender, EventArgs e)
{
var sf = axMap1.get_Shapefile(0);
if (sf != null)
{
sf.Labels.Clear();
int count = sf.Labels.Generate("[City_Name]", tkLabelPositioning.lpCenter, true);
MessageBox.Show("Number of labels generated: " + count);
}
else
{
MessageBox.Show("No shapefile with 0 handle.");
}
}
```