Estoy trabajando en un juego de cartas en C# para un proyecto en mi introducción al documento OOP y tengo el juego funcionando ahora, pero estoy agregando "estilo" a la GUI.Pause la ejecución de un método sin bloquear la GUI. C#
Actualmente, las cartas se reparten y aparecen en la interfaz de usuario de forma instantánea. Quiero tener que programar la pausa por un momento después de repartir una carta antes de que trate la siguiente.
Cuando un juego se inicia el siguiente código se ejecuta para rellenar los PictureBoxes que los representan (será un bucle con el tiempo):
cardImage1.Image = playDeck.deal().show();
cardImage2.Image = playDeck.deal().show();
cardImage3.Image = playDeck.deal().show();
cardImage4.Image = playDeck.deal().show();
cardImage5.Image = playDeck.deal().show();
...
tengo intentos utilizando System.Threading.Thread.Sleep (100); entre cada operación(). show() y también dentro de cada uno de esos métodos, pero todo lo que logra es bloquear mi GUI hasta que se hayan procesado todas las funciones y mostrar todas las tarjetas a la vez.
También he intentado usar una combinación de un temporizador y un ciclo While pero resultó en el mismo efecto.
¿Cuál sería la mejor manera de lograr el resultado deseado?
Gracias, el delegado funciona muy bien! Además, nunca había pensado colocar la llamada actual en el tic del temporizador (solo estaba haciendo un escenario de conteo ++) que probablemente también sea útil en el futuro. – Windos
Como expliqué, simplemente haciendo 'count ++' en el temporizador no ayudará porque el código en el ciclo while todavía estará bloqueando el subproceso de la interfaz de usuario. – SLaks
Por cierto, también es posible hacer un uso indebido de los iteradores para hacer esto; si estás interesado, te lo explicaré. – SLaks