Möglichkeit einen Vorgang immer wieder zu wiederholen in C#?
Moin zusammen
Ich möchte für ein Tic Tak Toe Projekt in WPF immer wieder überprüfen ob einer der Spieler gewonnen hatt allerdings wird bei einer Schleife das Programm während die Schleife läuft pausiert.
Gibt es irgendeine andere Möglichkeit etwas immer wieder abzufragen?
2 Antworten
Nein, in dem Fall prüft man das nicht immer wieder, sondern nach jedem Zug. Ein asynchroner Thread ist dafür sicher nicht nötig. Du hast doch sicher Code, der ausgeführt wird, sobald der Text in einer Textbox verändert wird. Normalerweise gibt es sowas wie ein Event OnTextChanged oder so dafür (Stichwort).
Warum regelmäßig prüfen?
Prüfe doch nach einem Zug, ob der ziehende Spieler nach dem Zug gewonnen hat.
Und dass die UI blockiert, ist normal, dafür musst Du asynchron arbeiten.
Guckst Du Mal da: https://mycsharp.de/wbb2/thread.php?threadid=27992
Das ist zwar für WinForms, das Grundprinzip ist aber ähnlich, mitlerweile gibt's da aber noch eine Vereinfachung: Tasks und das async/await-Feature.
PS:
Regelmäßiges Prüfen schreit nach einem Timer.
Damit hättest Du dann auch das UI-blockt-Problem nicht mehr.
Aber wie gesagt:
Du musst nicht regelmäßig prüfen.
hab es jetzt so gelöst das jedes mal wenn in einer der Textboxen der text verändert wird abgefragt wird ob einer der spieler gewonnen hatt.
Ich habe das Programm mit Textboxen gemacht da geht das nicht
hab es jetzt so gelöst das jedes mal wenn in einer der Textboxen der text verändert wird abgefragt wird ob einer der spieler gewonnen hatt.