Я работаю над карточной игрой на C# для проекта на моей книге Intro to OOP, и теперь у меня есть игра, но я добавляю «чутье» в графический интерфейс.Приостановить выполнение метода без блокировки GUI. C#
В настоящее время карточки сдаются и отображаются в пользовательском интерфейсе мгновенно. Я хочу, чтобы на минутку запрограммировать паузу после того, как вы открыли карточку, прежде чем она начнет действовать дальше.
Когда игра запускается следующий код работает для заполнения PictureBoxes, которые представляют их (будет петля в конечном счете):
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();
...
У меня есть попытки, используя System.Threading.Thread.Sleep (100); между каждой сделкой(). show(), а также внутри каждого из этих методов, но все, что она достигает, блокирует мой графический интерфейс до тех пор, пока все спящие не обработают, а затем сразу отобразите все карты.
Я также попытался использовать комбинацию таймера и цикла while, но это привело к такому же эффекту.
Что было бы лучшим способом достижения желаемого результата?
Спасибо, делегат отлично работает! Кроме того, я никогда не хотел, чтобы на самом деле был задействован звонок по таймеру (я просто делал в нем сценарий типа count ++), который, вероятно, будет полезен и в будущем! – Windos
Как я уже говорил, просто выполнение 'count ++' в таймере не поможет, потому что код в цикле while все равно будет блокировать поток пользовательского интерфейса. – SLaks
Кстати, можно также использовать итераторы для этого; если вам интересно, я объясню. – SLaks