2010-01-26 2 views
2

실행 단추를 누르면 (Default.aspx에서) 프로세스가 시작됩니다.이 프로세스는 웹 서비스에 연결하여 일부 파일을 가져옵니다. 사용 방법 :웹 응용 프로그램에서 싱글 톤 프로세스의 프로세스 추적

  1. 단 하나의 프로세스가 한 번에 실행

  2. 트랙 진행 (I 브라우저를 새로 고침하는 경우, I 프로세스를 두 번째로 시작하지 않으 예) 있는지 확인 - 추적하고자하는 프로세스의 4 점 (25 %, 50 %, 75 %, 100 %)이 있으며 각 부분이 완료되면 진행률 막대를 업데이트하려고합니다. 실행중인 프로세스에 대한 상태 개체가 있지만 문제는 자동으로 진행률 막대를 업데이트하는 방법입니다.

  3. 위의 두 가지를 달성하려면 스레드를 사용해야합니까? 역순으로 응답

답변

0

:

  1. 예. 그리고 스레드를 캡슐화 할 객체가 있어야합니다.

  2. 프로세스의 % 완료를 포함하는 개체의 공용 멤버가있을 수 있습니다. 주기적으로이를 폴링 할 수 있습니다. HTML 페이지에서이 작업을 수행하는 방법은 아마도 AJAX 요청 일 것입니다.

  3. 일부 스레드 동기화를 수행해야합니다. 어쩌면 뮤텍스를 통해. Here's a good example of how to do this (뮤텍스까지 아래로 스크롤).

+0

감사합니다. 이 시나리오에서 왜 스레드가 필요한지 설명해 주시겠습니까? 나는 단 하나의 과정과 평행 한 활동이 없다. HttpApplicationState에 Process 개체 (또는 IsRunning 속성이있는 상태 개체) 만 저장하면 브라우저를 새로 고칠 때마다 실행중인 프로세스에 액세스 할 수 있습니까? – Prabhu

+0

@ 스와미. 실제로는 하나 이상의 스레드가 있습니다. 페이지가 처리되는 동일한 스레드에서 요청을 실행하면 페이지가 사용자에게 반환되지 않습니다. 그래서 당신은 당신의 작업을 처리하기 위해 새로운 스레드를 시작해야합니다. 또한 처리 작업과 같은 백그라운드 작업으로 IIS 스레드를 묶고 싶지는 않습니다. – Keltex

+0

@Keltex. 고마워요. 한 가지 더 질문 ... 다른 컴퓨터의 브라우저에서 페이지를 열고 프로세스가 실행중인 경우 페이지에 실행 버튼 대신 상태가 표시되는지 확인하고 싶습니다. 이것이 가능한가? – Prabhu