我試着寫在ASP .NET異步頁它運行在不同的線程功能。 以下代碼中的問題是,當我調試它時,函數EndAsyncOperation從不會被調用。因此,該頁面未完全加載並永久加載。 我使用Action來運行線程池中不同線程中的代碼。是否有另一種方法可以在不同的線程中運行代碼?ASP.Net異步頁與Action.BeginInvoke
我哪裏錯了?
還有一個問題。我在ASP.Net中讀到這些頁面是用一個線程池運行的。那麼,當我調試我的網站,並嘗試加載幾個頁面在一起,他們一個接一個地同步加載?
public partial class AsyncPage : System.Web.UI.Page
{
void Page_Load(object sender, EventArgs e)
{
AddOnPreRenderCompleteAsync(
new BeginEventHandler(BeginAsyncOperation),
new EndEventHandler(EndAsyncOperation)
);
}
IAsyncResult BeginAsyncOperation(object sender, EventArgs e,
AsyncCallback cb, object state)
{
Action action =() =>
{
Start();
};
IAsyncResult asyncResult = action.BeginInvoke(new AsyncCallback(action.EndInvoke), null);
return asyncResult;
}
void EndAsyncOperation(IAsyncResult ar)
{
// This function isn't reached
}
public void Start()
{
// Do something
}
}
請每個問題只問一個問題。 –