C# WPF

C# WPF delay 주는 방법

벌눈 2013. 11. 22. 01:09

WPF에서는 delay를 줄 때, 다음과 같이 합니다. 그냥 Thread.Sleep()을 사용하면 delay가 적용되지 않습니다. Dispatcher가 Repaint 작업을 큐에 넣어 두기 때문이랍니다.

        private void checkMatch(card fCard, card sCard)
        {
            TimeSpan interval = new TimeSpan(0, 0, 2);

            if (fCard.num % 13 == sCard.num % 13)
            {
                cardOpened[fCard.num] = true;
                cardOpened[sCard.num] = true;
            }
            else
            {
                this.Dispatcher.Invoke( (ThreadStart)(() => { }), DispatcherPriority.ApplicationIdle);
                Thread.Sleep(1000);
                DrawCard(fCard.row, fCard.col, fCard.num, false);
                DrawCard(sCard.row, sCard.col, sCard.num, false);              
            }
        }

http://blog.naver.com/techshare/100071407238 를 참조하세요

WPF - Threading Model
; http://msdn.microsoft.com/ko-kr/library/ms741870(VS.85).aspx

 

BeeEye Dmu