我试着写在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
}
}
请每个问题只问一个问题。 –