2012-01-25 5 views
0

Windows 서비스에서 실행중인 스케줄러가 하나 있습니다. 새로운 이벤트마다 새로운 스레드를 생성합니다. 그런 다음 각 스레드는 AddIn Framework를 사용하여 DLL을로드하고 작업을 실행합니다.스케줄러의 호스팅 메커니즘 변경

괜찮 았지만 지금은 새로운 요구 사항에 따라 우리가 그렇게 결정하거나 이벤트가 실행에 많은 시간이 걸리는 경우 어떤 이벤트를 죽일 수 있기를 원합니다. 스케줄러가 이해하고 특정 스레드를 죽일 수 있도록 내가 뭔가를 발행 할 필요가 이렇게하려면

ThreadStart ts = KickOffEvents; 
Thread t = new Thread(ts); 

스레드

을 시작

코드입니다. 하지만 그 스케줄러는 윈도우 서비스에서 호스팅하므로 그렇게 할 수 없습니다.

아무도이 문제를 해결할 수 있습니까?

현재 WCF 서비스를 만들어 IIS에 일정 기능을 이동하는 중입니다. 그럼 어떤 사건 (스레드) 죽일 것이다 wcf 서비스의 기능을 호출 할 수있을 것입니다.

누구나 그렇게 할 수있는 위험이 있는지 여부를 입력 할 수 있습니까? 사전

+0

이 어떻게 산란 않는이 플래그를 실을 설정하는 WCF 서비스 요청을 사용할 수 있습니까? –

+0

설명이 코드로 업데이트되었습니다. – Denish

답변

0

에서

덕분에 스케줄러가 명시 적으로 낳았다 스레드를 죽일 수있는 방법이 없습니다. 스레드가 찾는 플래그를 설정해야하며 자체를 가져와야합니다. 다른 건 정의되지 않은 동작이 발생할 수 있습니다

당신은 작업을 수행 할 수

+0

당신은 각 이벤트가 실행될 때마다 하나의 플래그를 설정해야하며 주기적으로 플래그를 확인하기 위해 각 작업의 코드를 변경해야합니다 ... 각 함수의 실행을 완료 한 후 플래그가 설정된 경우 실이 스스로를 죽인다. 뭔가 similer ??? – Denish

+0

예 - 그 라인을 따라 무엇인가 - 잘하면 스레드를 처리 할 때 취소하라는 요청을 받았는지 확인할 수있는 장소가 있습니다. 말하자면 스레드를 정리하여 스스로 죽일 수 있습니다. –