사용자가 .aspx 페이지를 방문하면 새 스레드에서 백그라운드 계산을 시작해야합니다. 계산 결과는 콜백에서 결과를 검색 할 수 있도록 사용자의 Session에 저장해야합니다. 또한 콜백에서 백그라운드 계산의 상태를 볼 수 있어야합니다. 예 : 계산이 완료되어 성공적으로 완료되었는지 또는 아직 실행 중인지 확인해야합니다. 어떻게해야합니까?asp.net (C#)의 스레드
질문 내가 스레드의 상태를 확인 할 방법
- ? 여러 사용자가 백그라운드에서 동시에 계산을 수행 할 수 있으므로 어떤 스레드가 어떤 스레드에 속하는지 알 수있는 프로세스가 어떻게 작동하는지 확신 할 수 없습니다. (내 시나리오에서는 중요한 스레드는 원래 시작된 스레드입니다. 사용자 A - 사용자 A는 해당 스레드의 상태를 검색/확인하기 위해 콜백을 수행합니다.
- 내 생각에 HttpSessionState "세션"변수를 새 스레드에 전달하면 예상대로 작동합니다 (예 : 나중에 세션에 항목을 추가 할 수 있음).
감사합니다. 또한 나는 뭔가에 대해 혼란 스러울 지 모르지만 SO 로그인 시스템이 다르기 때문에 기존 계정에 액세스 할 수 없다고 이야기해야합니다.
편집
지금 기본적으로 스레드의 목록을 관리 클래스와 싱글 톤을 사용 this article에 설명 된 방법을 사용하는 방법에 대해 생각하고 있어요. 데이터베이스에 내 데이터를 저장하는 대신 (데이터를 검색하는 것과 관련된 성능 저하와 데이터베이스의 추가 테이블, 유지 관리 등), 클래스에 데이터를 저장할 것입니다.
편집 2
내 첫 편집에서 언급 된 접근 방식은 잘 작동. 또한 스레드와 관련 데이터가 정리 타이머라는 메서드를 호출 한 후에 정리할 수 있도록 타이머가 있습니다. 내 데이터와 스레드를 포함하는 객체는 Singleton 클래스에 저장되었습니다. 일부 응용 프로그램의 경우 데이터베이스를 저장소로 사용하는 것이 적절할 수 있지만 내 데이터는 페이지의 특정 인스턴스에 연결되어 있으므로 해당 페이지 컨텍스트 외부에서는 쓸모가 없습니다.
로그인 시스템에 변화가 없었습니다. 어쨌든 바닥 글에서 "문의하기"를 클릭하고 팀에 귀하의 계정을 병합하도록 요청하는 이메일을 보낼 수 있습니다. –
이전 계정을 더 신랄하게 만들 수 있다면 (아마도 게시물 찾기), 우리는이를 수정할 수 있습니다. "명백한"단일 일치는 없지만 몇 가지 가능성이 있습니다 ... –
백그라운드 스레드에서 어떤 작업을하고 있습니까? 너무 오래 당신의 넥타이를 어떻게 든 현재에는 아무런 문제가 없어야합니다. 배경 계산이 아직 실행 중인지 확인하는 것보다 완료 될 때 다른 이벤트를 시작하는 것이 더 낫겠습니까? – timothyclifford