스레드를 이용한 외부 데이터 받기(With Tread)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | private void button1_Click(object sender, EventArgs e) { receThread = new Thread(ReceiveData); receThread.Start(); } void ReceiveData() { while(IsRun) { Thread.Sleep(1); foreach(var proc in Process.GetProcesses()) { if (proc.ProcessName.ToString() != "SendData") continue; IsRun = false; label1.Text = "데이터 받기 : " + SendData.Form1. } } receThread.Abort(); } | cs |
- F5로 실행하면 크로스 스레드 예외 상황이 발생함.
주 스레드와 작업자 스레드가 별개로 수행되는 구조로 되어 있다.
따라서 작업자 스레드에서 주 스레드에 인터페이스 디자인을 위해 정의되어 있는
윈도우 컨트롤에 직접적으로 접근하면 크로스 스레드 에러가 발생한다.
- Ctrl + F5 실행시 접근하여 얻어옴.
반응형
'Programming > C/C++/C#' 카테고리의 다른 글
C++ 에서 동적 메모리의 할당(malloc, new)과 해제(free,delete) 원리 (0) | 2017.08.30 |
---|---|
C++ WIndow Styles (0) | 2017.08.12 |
C# 스레드 포어그라운드(Forground)와 백그라운드(Background) (0) | 2017.08.07 |
C# 에코 서버 만들기 (1) | 2017.07.31 |
C# 윈도우 핸들 찾기(FIndWindow) (0) | 2017.07.02 |
C# - 스레드의 생명주기 확인 예제 (0) | 2017.06.17 |
C# Network 예제 (0) | 2017.06.06 |
asm - 어셈블리 메시지 박스 띠우기 (0) | 2017.01.01 |