ASP.net webforms (.NET 2.0) 中的异步页面处理示例

Example of Asynchronous page processing in ASP.net webforms (.NET 2.0)(ASP.net webforms (.NET 2.0) 中的异步页面处理示例)
本文介绍了ASP.net webforms (.NET 2.0) 中的异步页面处理示例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

谁能给我提供一个简单的 ASP.NET Webforms 2.0 异步页面处理示例(我使用的是 VS 2010,所以像 lambdas 这样的新语法还可以)?

Can someone provide me with a simple example of Asynchronous page processing in ASP.NET Webforms 2.0 (I'm using VS 2010, so new syntax like lambdas are ok)?

我有一些长时间运行的请求,我不想占用 IIS 线程.

I have some long running requests that I don't want tying up IIS threads.

为简单起见,假设我当前的代码如下所示:

For simplicity's sake, let's say my current code looks like this:

protected void Page_Load(object sender, EventArgs e)
{
    string param1 = _txtParam1.Text;
    string param2 = _txtParam2.Text;

    //This takes a long time (relative to a web request)
    List<MyEntity> entities = _myRepository.GetEntities(param1, param2);

    //Conceptually, I would like IIS to bring up a new thread here so that I can
    //display the data after it has come back.
    DoStuffWithEntities(entities);

}

如何修改此代码以使其异步?假设我已经在 aspx 页面中设置了 async="true".

How can I modify this code so that it is asynchronous? Let's assume that I already set async="true" in the aspx page.

编辑

我想我知道如何获得我正在寻找的东西.我已将示例代码放在答案中 此处.请随时指出任何缺陷或可以进行的更改.

I think I figured out how to get what I'm looking for. I've put the example code in an answer here. Feel free to point out any flaws or changes that can be made.

推荐答案

我询问了 ASP.NET 团队的一些人.这是他们给我的电子邮件回复,现在是给你的.

I asked some folks on the ASP.NET team. Here's their emailed response to me, and now, to you.

代码最终要做的就是启动一个新线程并在该线程上执行委托调用.所以现在有两个线程在运行:请求线程和新线程.因此,此示例实际上比原始同步代码的性能更差.

All that code ends up doing is spinning up a new thread and performing delegate invocation on that thread. So now there are two threads running: the request thread and the new thread. Hence this sample actually has worse performance than the original synchronous code would have had.

参见 http:///www.asp.net/web-forms/tutorials/aspnet-45/using-asynchronous-methods-in-aspnet-45 有关如何在 ASP.NET 中编写和使用异步方法的示例.>

See http://www.asp.net/web-forms/tutorials/aspnet-45/using-asynchronous-methods-in-aspnet-45 for a sample on how to write and consume async methods in ASP.NET.

这篇关于ASP.net webforms (.NET 2.0) 中的异步页面处理示例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
how do i pass parameters to aspnet reportviewer(如何将参数传递给aspnet report查看器)
Bind multiple parameters from route and body to a model in ASP.NET Core(在ASP.NET Core中将路由和主体中的多个参数绑定到一个模型)
Custom model binding in AspNet Core WebApi?(AspNet Core WebApi中的自定义模型绑定?)
How to minify in .net core mvc view?(如何在.Net核心MVC视图中缩小?)