스레드 자원 해제 (해제하지 않으면 프로세스에 남아있는다.)
1.1 thread.IsBackground = true; //UI쓰레드가 종료될 때 자원을해제.
--> 해당 방법은 Program.cs 에 지정한 UI thread 가 close 되어야 종료가 된다.
1.2 FormClosing 이벤트를 사용해서 폼이 닫힐 때 쓰레드 해제를 사용 한다.
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if (th != null)
{
th.Abort();
}
th = null;
}
2.크로스 Thread 발생 (UI-Thread외의 Thread에서 컨트롤에 접근시 예외)
크로스 쓰레드 발생은 디버그 모드 진행시 발생
처리방법은 Invoke 를 사용하여 동기/비동기로 처리방법을 바꿔준다,
//크로스 쓰레드에러 처리완료.
//this.Invoke((MethodInvoker)delegate
//{
// label1.Text = "aaa";
//});
this.Invoke(new Action(() =>
{
label1.Text = "aaa";
}));
[C#] Timer 쓰는 법 (0) | 2023.08.02 |
---|---|
[C#] 고급문법_람다식 (0) | 2023.07.31 |
[C#] 동기/ 비동기 정의 (0) | 2023.07.26 |
[C#] Thread 기본 (0) | 2023.07.24 |
C# 날짜 시간 차이 비교 (0) | 2023.06.28 |