다른 스레드에서 함수를 실행하는 asp.net에 비동기 페이지를 쓰려고합니다. 다음 코드의 문제는 디버그 할 때 EndAsyncOperation 함수가 호출되지 않는다는 것입니다. 따라서 페이지가 완전히로드되지 않고 계속로드됩니다. Action을 사용하여 스레드 풀의 다른 스레드에서 코드를 실행합니다. 작동하는 다른 스레드에서 코드를 실행하는 다른 방법이 있습니까?Action.BeginInvoke ASP.Net Async 페이지
어디로 잘못 가고 있습니까?
그리고 또 다른 질문입니다. 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
}
}
질문 당 하나의 질문 만하십시오. –