Solved! Go to Solution.
private void Button_Click(object sender, RoutedEventArgs e)
{
try
{
var _ = AddGraphicsToGraphicsLayer();
}
catch (System.Exception)
{
MessageBox.Show("Error");
}
MessageBox.Show("Done");
}
private async Task AddGraphicsToGraphicsLayer()
{
List<Graphic> graphics = new List<Graphic>();
for (int i = 0; i < 100; i++)
{
Graphic g = new Graphic()
{
Geometry = GetRandomPolygon(),
};
graphics.Add(g);
await Task.Delay(50);
}
MyGraphicsLayer.Graphics.AddRange(graphics);
}
Random random = new Random();
private Polygon GetRandomPolygon()
{
Polygon polygon = new Polygon();
ESRI.ArcGIS.Client.Geometry.PointCollection pointCollection = new ESRI.ArcGIS.Client.Geometry.PointCollection();
MapPoint mapPoint = new MapPoint(random.Next(-20000000, 20000000), random.Next(-20000000, 20000000));
MapPoint mapPoint2 = new MapPoint(random.Next(-20000000, 20000000), random.Next(-20000000, 20000000));
MapPoint mapPoint3 = new MapPoint(random.Next(-20000000, 20000000), random.Next(-20000000, 20000000));
pointCollection.Add(mapPoint);
pointCollection.Add(mapPoint2);
pointCollection.Add(mapPoint3);
polygon.Rings.Add(pointCollection);
return polygon;
}
for (int i = 0; i < 100; i++) { Graphic g = new Graphic() { Geometry = GetRandomPolygon(), }; graphics.Add(g); await Task.Delay(50); } MyGraphicsLayer.Graphics.AddRange(graphics);
private async Task AddGraphicsToGraphicsLayer() { for (int i = 0; i < 100; i++) { // time-consuming operation await Task.Delay(50); Graphic g = new Graphic() { Geometry = GetRandomPolygon(), }; MyGraphicsLayer.Graphics.Add(g); } }