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); } }
