2011-09-17 4 views
1

TcpClient 및 TcpListener 클래스를 사용하여 실험하고 두 개의 스레드가 실행 중일 때 폼을 닫을 때 프로세스가 끝나지 않지만 폼이 사라집니다.양식을 닫을 때 신청 절차가 끝나지 않습니까? (C#)

VS IDE 또는 작업 관리자로 프로세스를 수동으로 종료해야합니다.

프로그램을 닫을 때 내가 말할 수있는 것에서 아무 것도 실행되지 않고 있지만 프로세스가 끝나지 않습니다. 모든 곳에서 중단 점을 삽입하고 콘솔 출력에서도 스레드가 종료되었다고 말합니다.

누구에게 무슨 일이 일어나고 있는지 알고 계십니까?

답변

3

응용 프로그램의 주 스레드가 스폰 된 스레드가 완료 될 때까지 기다리는 중입니다. 당신은 true에 스레드의 IsBackground 속성을 설정할 수 있습니다 그래서 그들은 종료에서 프로세스를 중지하지 않습니다

MSDN에서 :

스레드는 백그라운드 스레드 또는 전경 스레드 중 하나입니다. 배경 스레드는 전치 스레드와 동일하지만, 백그라운드 스레드는 프로세스가 종료되지 않도록합니다. 한 프로세스에 속한 모든 전경 스레드가 종료되면 공용 언어 런타임이 프로세스를 종료합니다. 남아있는 모든 백그라운드 스레드 이 중지되고 완료되지 않습니다.

+0

고마워요! [chars] –

관련 문제