Ech, no właśnie...
Jak słyszę WPF to się zwykle nie odzywam ale, ALE!!!
Twój kod chyba nie ma szans poprawnie działać.
for (int i = 0; i < 3; i++)
{
zaw1.Sciezka1(ref zaw1);
Co ta metoda robi, ze potrzebuje ref do siebie?
boisko = new Boisko(zaw1, zaw2);
Wcześniej tworzysz Boisko boisko = new Boisko(zaw1, zaw2); a tu potem w pętli 3 razy to samo.
System.Timers.Timer timer = new System.Timers.Timer(5000);
timer.Elapsed += (s, e) => {
Invoke(new Action(() => // w tej linii mam bład : metoda nie istnieje w bierzacym kontekście.
{
WydrukBoiska(boisko);
}));
};
timer.Start();
}
Uruchomienie tego timera powinna być poza tą pętlą. Bp teraz to CI utworzy 3 timery i każdy będzie co 5 s chciał aktualizować. Sensu to nie chyba ma (no chyba że jakiś ma).
Może jakoś tak
private Boisko boisko;
public MainWindow()
{
InitializeComponent();
Zawodnik zaw1 = new Zawodnik();
zaw1.Numer = 1;
zaw1.Poz_x = 1;
zaw1.Poz_y = 0;
Zawodnik zaw2 = new Zawodnik();
zaw2.Numer = 2;
zaw2.Poz_x = 3;
zaw2.Poz_y = 0;
boisko = new Boisko(zaw1, zaw2);
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(5);
timer.Tick += timer_Tick;
timer.Start();
for (int i = 0; i < 3; i++)
{
zaw1.Sciezka1(ref zaw1);
boisko = new Boisko(zaw1, zaw2); // to jest potrzebne na pewno??? !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
}
void timer_Tick(object sender, EventArgs e)
{
WydrukBoiska(boisko);
}