스레드를 이용한 외부 데이터 받기(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 실행시 접근하여 얻어옴.


반응형