■ 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]
'개발자 > WPF(C#) UI' 카테고리의 다른 글
C# WPF MVVM 패턴 활용하기 (0) | 2020.03.22 |
---|---|
C# WPF Window 새창 띄우기, 창 간에 데이터 넘기기 (0) | 2020.03.22 |
Mahapps - IconPacks (0) | 2020.03.22 |
VS2017 WPF 이벤트핸들러 클릭으로 자동 넘어가기 (0) | 2020.03.21 |
C# :: byte[] -> 구조체 , 구조체 -> byte(바이트배열 구조체간 할당) (0) | 2020.03.19 |