2010-12-15 3 views
3

백그라운드에서 작업을 실행하는 코드 블록이 필요합니다. 사용자가 제출 단추를 누른 다음 작업이 백그라운드에서 시작되면 사용자가 해당 창을 닫고 다른 작업을 실행하는 동안 작업이 계속 실행되어야한다고 가정하십시오.백그라운드에서 작업 실행

ASP.NET 및 VB.NET에서 몇 가지 도움말을 제공해주십시오.

당신의 도움이

답변

5

당신은 스레드 풀에서 가져온 스레드에 대한 몇 가지 몇 가지 방법을 실행할 수 있습니다 ThreadPool.QueueUserWorkItem 방법을 살펴 수 주셔서 감사합니다. 또는 제한된 수의 스레드를 포함하고 ASP.NET 응용 프로그램에서 요청을 처리하는 데 사용되는 풀에서 스레드를 위험에 빠뜨리는 것을 방지하기 위해 장기 실행 작업 인 경우 Thread 클래스를 사용하여 새 스레드를 수동으로 생성 할 수 있습니다 .

+0

그러나이 장기 실행 작업의 경우, 세션이 종료 될 때 발생을 사용합니다. 실이 내려 가지 않습니까? – Patrick

+0

@ Patrick, 아니요, 스레드는 세션과 관련이 없습니다. AppDomain과 관련이 있으므로 IIS가 응용 프로그램을로드 한 상태로 유지하면 실행됩니다. 반면에 IIS가 응용 프로그램 풀을 언로드하면 스레드의 실행이 중지됩니다. –

+0

그래서 스레드를 시작하면 실행중인 작업의 수명에 따라 해결되지 않을 수 있습니까? IIS에서 응용 프로그램이 다운되기까지 얼마나 걸리나요? – Patrick

4

wcf 서비스를 호스팅하는 Windows 서비스를 만들면이 작업을 수행 할 수 있습니다. 사용자가 제출 단추를 클릭하면 Windows 서비스에 요청을 보내고 Windows 서비스는 사용자가 닫는 백그라운드 이벤트에서 실행됩니다. 창문.

1

BackgroundWorker은 가장 쉽게 시작할 수 있습니다. 코드를 DoWork 이벤트에 넣으십시오.

관련 문제