[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]