본문 바로가기

C# WPF

C# WPF delay 주는 방법

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

'C# WPF' 카테고리의 다른 글

C# WPF 그래프 그리기(시간복잡도 그래프)  (0) 2013.11.28
C#, WPF 점선그리는 법  (0) 2013.11.27
C# WPF 카드게임(Memory Card Game)  (0) 2013.11.22
C# WPF SnakeBite Game  (0) 2013.11.21
C#에서 실행시간 체크  (0) 2013.11.21