Я пытаюсь написать асинхронную страницу в asp .net, которая выполняет функцию в другом потоке.Проблема в следующем коде состоит в том, что когда я отлаживаю его, функция EndAsyncOperation никогда не вызывается.В результате страница загружается не полностью и загружается вечно.Я использую Action для запуска кода в другом потоке из пула потоков.Может быть, есть другой способ запуска кода в другом потоке, который работает?
Где я иду не так?
И еще один вопрос.Я читал, что в 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
}
}