2012-02-15 28 views
1

在asp.net mvc中,我在我的action方法中註冊了一個事件監聽器。我希望動作方法等到事件發生(因此客戶端將等待服務器響應,直到事件發生)。有沒有一種很好的方式來做到這一點,而沒有投票?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應該產生大量的信息。

請注意,在常規控制器中等待事件並不是一個好主意。當你等待處理請求的線程被阻止做其他事情時。由於可用於請求的線程池數量有限,如果有足夠的併發請求等待某個事件,最終可能會阻塞整個應用程序。

相關問題