학습목표: Cross-Thread 문제로
Main Form에서 사용하고있는 control들을 Sub로 생성시킨 Thread에서
사용하는 방법을 알아보자
Thread g_SubThread = new Thread(AddTexMsg_Thread);
g_SubThread.Start();
public void AddTexMsg_Thread()
{
string sBuf = string.Format("Example... Date:{0}", DateTime.Now.ToString());
// 출력하고자 하는 Control에 invoke(MethodInvoker(delegate) 를 설정한다
// richtextbox가 invoke가 필요한 사항이면, 즉 Main Thread에서 RichEdit Control를
// 제어하고 있는데, 다른 Thread에서 해당 RichEdit를 제어하고 싶은 경우
// Cross-Thread error가 발생하는데 이를 해결하기 위해 invoke 방식을 사용.
if (richDeviceLog.InvokeRequired)
{
richDeviceLog.Invoke(new MethodInvoker(delegate()
{
richDeviceLog.AppendText(sTbuf + Environment.NewLine);
}));
}
else
richDeviceLog.AppendText(sTbuf + Environment.NewLine);
}
'프로그래밍 > .Net' 카테고리의 다른 글
[본문스크랩] [C#] DateTime 클래스 활용 (0) | 2014.01.17 |
---|---|
class 선언하고 사용하기 (0) | 2014.01.17 |
시간을 string으로 표현하기. DateTime (0) | 2014.01.17 |
MFC의 OK 버튼처럼 C#의 버튼에 DilogResult 적용하기 (0) | 2014.01.17 |
Tool Tip 사용하기 (0) | 2014.01.17 |