728x90
반응형
728x170
▶ 크로스 스레드(Cross Thread) 처리하기 예제
using System.Windows.Forms;
private TextBox textBox;
...
this.textBox.ExecuteUIThread(control => { control.Text = "SOME MESSAGE"; });
728x90
▶ 크로스 스레드(Cross Thread) 처리하기
using System.ComponentModel;
/// <summary>
/// 컨트롤 확장
/// </summary>
public static class ControlExtension
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Delegate
//////////////////////////////////////////////////////////////////////////////// Public
#region UI 스레드 실행하기 대리자 - ExecuteUIThreadDelegate
/// <summary>
/// UI 스레드 실행하기 대리자
/// </summary>
/// <typeparam name="T">객체 타입</typeparam>
/// <param name="source">소스 객체</param>
public delegate void ExecuteUIThreadDelegate<T>(T source) where T : ISynchronizeInvoke;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Public
#region UI 스레드 실행하기 - ExecuteUIThread<T>(source, executeUIThreadDelegate)
/// <summary>
/// UI 스레드 실행하기
/// </summary>
/// <typeparam name="T">객체 타입</typeparam>
/// <param name="source">소스 객체</param>
/// <param name="executeUIThreadDelegate">UI 스레드 실행하기 대리자</param>
public static void ExecuteUIThread<T>(this T source, ExecuteUIThreadDelegate<T> executeUIThreadDelegate) where T : ISynchronizeInvoke
{
if(source.InvokeRequired)
{
source.Invoke(executeUIThreadDelegate, new object[] { source });
}
else
{
executeUIThreadDelegate(source);
}
}
#endregion
}
728x90
반응형
그리드형(광고전용)
'C# > WinForm' 카테고리의 다른 글
[C#/WINFORM] PropertyGrid 클래스 : 이미지 목록을 사용해 항목 값 선택하기 (0) | 2018.03.04 |
---|---|
[C#/WINFORM] PropertyGrid 클래스 : 목록을 사용해 항목 값 선택하기 (0) | 2018.03.04 |
[C#/WINFORM] PropertyGrid 클래스 사용하기 (0) | 2018.03.04 |
[C#/WINFORM] GroupBox 클래스 : 테두리 색상 설정하기 (0) | 2018.03.04 |
[C#/WINFORM] Form 클래스 : 폼 닫히는 것을 방지하기 (0) | 2018.03.04 |
[C#/WINFORM] 크로스 스레드(Cross Thread) 처리하기 (0) | 2018.03.04 |
[C#/WINFORM] USB 제어하기 (0) | 2018.03.03 |
[C#/WINFORM] 폼 위치 설정하기 (0) | 2018.03.03 |
[C#/WINFORM] 태스크바 위치 타입 구하기 (0) | 2018.03.03 |
[C#/WINFORM] ClickOnce 설치 파일 캐시 지우기 (0) | 2018.03.01 |
댓글을 달아 주세요