2012-02-15 1 views
1

asp.net mvc에서 액션 메소드에 이벤트 리스너를 등록했습니다. 액션 메소드가 이벤트가 발생할 때까지 기다려야한다. 그러므로 클라이언트는 이벤트가 발생할 때까지 서버 응답을 기다린다. 폴링없이 이것을 할 수있는 좋은 방법이 있습니까?asp.net mvc는 이벤트가 발생할 때까지 액션 실행을 유지합니다.

class SomeStateManager 
{ 
    public delegate void SomeDelegate(); 
    public event SomeDelegate SomeEvent; 
} 

... 

public void MyActionMethod(SomeData data) 
{ 
    SomeStateManager man = GetSomeStateManager(); 
    man.SomeEvent +=() => 
     { 
      //want to hold action until this occurs, without polling 
     } 
} 

답변

1

나는 AsyncController이 도움이된다고 생각합니다. quick google search은 많은 정보를 얻을 수 있습니다.

일반 컨트롤러에서 이벤트를 기다리는 것은 좋지 않습니다. 처리중인 스레드가 대기하는 동안 요청이 차단됩니다. 요청에 사용할 수있는 스레드 풀이 제한되어 있기 때문에 충분한 동시 요청이 이벤트를 기다리고있는 경우 전체 응용 프로그램을 차단할 수 있습니다.

관련 문제