2009-02-04 4 views
0

클라이언트가 만든 외부 모듈을로드하는 소프트웨어를 만들었습니다.관리되지 않는 스레드가 실행되는 관리 코드

이 소프트웨어는 충돌을 허용 할 수없는 HA (고 가용성)로되어 있습니다. 그 목적을 위해 스레드를 만들고 클라이언트 모듈 함수를 실행 한 다음 반환하는 클래스를 만들었습니다. 클래스는 특정 시간에 함수를 실행할 수있게 해 주며, 너무 오래 걸리면 스레드를 죽입니다. 이와 같이 클라이언트가 코드를 무한 루프 시키거나 다른 코드를 사용하여 모듈을 망친 경우 나머지 시스템은 멈추지 않습니다.

자, 문제는 ... 함수를 실행하는 스레드가 관리되지 않는 코드 (C++)로 만들어지고 그 안에서 실행되는 모듈 함수가 관리되는 코드 인 경우 스레드를 강제 종료하면 어떤 문제가 발생할 수 있습니까?

감사합니다,

일반적으로

답변

3

, 그것은 실행중인 프로세스에서 스레드를 죽일 안전하지 않은; TerminateThread의 경고 및 참고 사항을 참조하십시오.

이러한 응용 프로그램을 작성하는 경우 잘 정의 된 통신 인터페이스를 사용하여 제 3 자 모듈을 별도의 프로세스로 호스팅하는 방법을 조사하고자합니다. 예 : COM + 응용 프로그램 내부. 이렇게하면 "호스트"프로세스의 안정성에 영향을 미치지 않고 "제어 불능"상태가되면 전체 프로세스를 중단시킬 수 있습니다.

관련 문제