在哪些场景下,应该采用PageAsyncTask进行异步ASP.NET页面处理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计455个文字,预计阅读时间需要2分钟。
根据您对ASP.NET异步页面理解,以下是对该内容的简化
要实现ASP.NET异步页面,需要在开始执行异步任务时,立即在预渲染和预渲染完成事件之间执行。由于页面控件的事件在加载和预渲染事件间触发,因此无需额外开始执行。
根据我对阅读有关ASP.NET异步页面的理解,该异步任务开始时执行的方法始终在预渲染和预渲染完成事件之间执行.因为页面的控件’事件在页面的加载和预渲染事件之间运行,所以无论开始任务处理程序(下面的BeginAsync处理程序)产生什么,它都不能用在控件的事件中?例如,如果处理程序从数据库获取数据,则数据不能用于任何控件的回发事件?在预渲染后你会将数据绑定到数据控件吗?PageAsyncTask pat = new PageAsyncTask(BeginAsync, EndAsync, null, null, true); this.RegisterAsyncTask(pat); 完全无视Guffa的回答,还没有足够的声誉来投票给他,但这完全是误导和可怕的错误. Tony_Henrich的链接非常好,这是另一个同样有用的东西: msdn.microsoft.com/en-us/magazine/cc163725.aspx
所有DataSource控件都在Page_PreRender之后自动数据绑定(如果之前还没有手动) – 所以是的,您可以绑定所有PageAsyncTask事件处理程序中的数据,甚至是Page_PreRenderComplete(仅在每个PageAsyncTask完成或超时后启动).
PageAsyncTask最适合在处理数据库,Web服务,文件I / O以及CPU等待数据处理的所有其他操作时使用 – 但不适用于CPU密集型或长时间运行的计算(CPU忙时).
说了这么多,只有当两个或多个PageAsyncTask并行运行时,页面才会处理得更快 – 但是,即使只有一个PageAsyncTask,请求线程也会被发送回池(有限供应),而I / O线程会处理操作,从而释放IIS以接收更多传入请求,直到任务完成(然后它从池中获取请求线程,不一定是同一个,并继续页面处理).
本文共计455个文字,预计阅读时间需要2分钟。
根据您对ASP.NET异步页面理解,以下是对该内容的简化
要实现ASP.NET异步页面,需要在开始执行异步任务时,立即在预渲染和预渲染完成事件之间执行。由于页面控件的事件在加载和预渲染事件间触发,因此无需额外开始执行。
根据我对阅读有关ASP.NET异步页面的理解,该异步任务开始时执行的方法始终在预渲染和预渲染完成事件之间执行.因为页面的控件’事件在页面的加载和预渲染事件之间运行,所以无论开始任务处理程序(下面的BeginAsync处理程序)产生什么,它都不能用在控件的事件中?例如,如果处理程序从数据库获取数据,则数据不能用于任何控件的回发事件?在预渲染后你会将数据绑定到数据控件吗?PageAsyncTask pat = new PageAsyncTask(BeginAsync, EndAsync, null, null, true); this.RegisterAsyncTask(pat); 完全无视Guffa的回答,还没有足够的声誉来投票给他,但这完全是误导和可怕的错误. Tony_Henrich的链接非常好,这是另一个同样有用的东西: msdn.microsoft.com/en-us/magazine/cc163725.aspx
所有DataSource控件都在Page_PreRender之后自动数据绑定(如果之前还没有手动) – 所以是的,您可以绑定所有PageAsyncTask事件处理程序中的数据,甚至是Page_PreRenderComplete(仅在每个PageAsyncTask完成或超时后启动).
PageAsyncTask最适合在处理数据库,Web服务,文件I / O以及CPU等待数据处理的所有其他操作时使用 – 但不适用于CPU密集型或长时间运行的计算(CPU忙时).
说了这么多,只有当两个或多个PageAsyncTask并行运行时,页面才会处理得更快 – 但是,即使只有一个PageAsyncTask,请求线程也会被发送回池(有限供应),而I / O线程会处理操作,从而释放IIS以接收更多传入请求,直到任务完成(然后它从池中获取请求线程,不一定是同一个,并继续页面处理).

