본문 바로가기

개발자/WPF(C#) UI

[C#/WPF] 버튼 처리 꿀팁 Dispatcher 클래스 : Invoke 메소드를 사용해 크로스 스레드(Cross Thread) 처리하기

반응형

 

■ Dispatcher 클래스 : Invoke 메소드를 사용해 크로스 스레드(Cross Thread) 처리하기

----------------------------------------------------------------------------------------------------

using System.Threading;

using System.Windows.Controls;

using System.Windows.Threading;

 

...

 

private TextBlock textBlock;

 

...

 

ThreadStart threadStart = delegate()

{

    for(int i = 0; i < 10; i++)

    {

        Thread.Sleep(100);

            

        Dispatcher.Invoke(DispatcherPriority.Normal, new Action<string, int>(SetMessage), "테스트", i);

    }

};

 

new Thread(this.threadStart).Start();

 

...

 

#region 메시지 설정하기 - SetMessage(message, value)

 

/// <summary>

/// 메시지 설정하기

/// </summary>

/// <param name="message">메시지</param>

/// <param name="value"></param>

private void SetMessage(string message, int value)

{

    this.textBlock.Text = string.Format("{0} : {1}", message, value);

}

 

#endregion

----------------------------------------------------------------------------------------------------



출처: https://icodebroker.tistory.com/812 [ICODEBROKER]

반응형