private async Task AddLines(Dispatcher dispatcher, IShapeComposite composite, Brush brush, double[,] lines)
 {
     await dispatcher.BeginInvoke(new Action(() => {
         for (int i = lines.GetLength(0) - 1; i >= 0; i--)
         {
             composite.AddLine(brush, lines[i, 0], lines[i, 1], lines[i, 2], lines[i, 3]);
         }
     }), DispatcherPriority.ContextIdle);
 }
 private async Task AddLine(Dispatcher dispatcher, IShapeComposite composite, Brush brush, double ax, double ay, double bx, double by)
 {
     await dispatcher.BeginInvoke(new Action(() => { composite.AddLine(brush, ax, ay, bx, by); }), DispatcherPriority.ContextIdle);
 }