Допустим мы имеем в первом файле такое определение:
using System.Windows.Media;
using System.Windows.Shapes;
namespace Visual
{
public class TPoint
{
// Coords of all objects in this project will be indicated by the upper left edge
private Rectangle rectangle;
private Brush pointColor;
private int regardingPointSize;
private int pointCoordX;
private int pointCoordY;
public TPoint(int _x, int _y, int _size, Brush _color)
{
pointColor = _color;
pointCoordX = _x * TBasicConstants.getBasicSizeOfBlock();
pointCoordY = _y * TBasicConstants.getBasicSizeOfBlock();
regardingPointSize = _size * TBasicConstants.getBasicSizeOfBlock();
rectangle = new Rectangle
{
Fill = pointColor,
Width = regardingPointSize,
Height = regardingPointSize
};
}
public int getXCoord ()
{
return pointCoordX;
}
public int getYCoord ()
{
return pointCoordY;
}
public Rectangle getPoint()
{
return rectangle;
}
}
}
Во втором, где описана мельчайшая константа :
namespace Visual
{
class TBasicConstants
{
private const int basicSizeOfBlock = 15;
public static int getBasicSizeOfBlock()
{
return basicSizeOfBlock;
}
}
}
И в третьем где отрисовываются элементы:
using System.Threading;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace Visual
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
for (int i = 0; i <=5; i++)
{
TPoint point = new TPoint(5, i, 1, Brushes.Red);
drawTPointElement(point);
}
}
public void drawTPointElement(TPoint _rectangle)
{
Canvas.SetLeft(_rectangle.getPoint(), _rectangle.getXCoord());
Canvas.SetTop(_rectangle.getPoint(), _rectangle.getYCoord());
Thread.Sleep(1000);
mainCanvas.Children.Add(_rectangle.getPoint());
}
}
}
Так вот, какие есть способы сделать так, чтобы элементы в цикле выводились по порядку через определённый интервал времени?
А не так как получилось: программа "спит" одну секунду после инициализации каждого объекта, а потом показывает все сразу (то есть программа перед запуском из за Thread.sleep висит 'количество итераций в цикле for * число указанное в thread.sleep' секунд)