Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何动态设置异步页指令,使异步方法工作

如何动态设置异步页指令,使异步方法工作
EN

Stack Overflow用户
提问于 2009-07-02 07:12:36
回答 1查看 7.3K关注 0票数 4

我正在编写一些实用程序代码来发送电子邮件异步。

代码语言:javascript
运行
AI代码解释
复制
var mailClient = new SmtpClient(smtpHost);
mailClient.SendCompleted += new SendCompletedEventHandler(mailClient_SendCompleted);

using (var mailMessage = new MailMessage())
{
    if (!((System.Web.UI.Page)HttpContext.Current.CurrentHandler).IsAsync)
    {
        // set to Async????
    }
    mailClient.SendAsync(mailMessage, new { EmailID });
}

但是我会收到错误,因为我的页面在页面指令中没有Async="true“。

下面是您得到的标准错误:

“异步操作在此上下文中是不允许的。启动异步操作的页面必须将异步属性设置为true,而异步操作只能在PreRenderComplete事件之前在页面上启动。”

我读到:(最后一段)

http://msdn.microsoft.com/en-us/magazine/cc163725.aspx

在构建异步页面时要记住的最后一点是,不应该启动从ASP.NET使用的相同线程池中借用的异步操作。例如,在页的异步点调用ThreadPool.QueueUserWorkItem是适得其反的,因为该方法从线程池中提取,导致处理请求的净增益为零。相反,调用框架中内置的异步方法(例如HttpWebRequest.BeginGetResponse和SqlCommand.BeginExecuteReader )通常被认为是安全的,因为这些方法倾向于使用完成端口来实现异步行为。

问题:

1)如何在c#代码中将页面更新为异步?

2)如果我不能,强迫我的所有页面成为Async=true?的缺点是什么?

3)有没有更好的方式来执行我的任务而不产生“反效果”呢?

EN

回答 1

Stack Overflow用户

发布于 2009-07-02 08:07:23

您需要从几个不同的页面发送邮件?

另外,当您尝试发送异步时,您得到了什么错误?请编辑您的问题以包含整个异常。

考虑创建一个发送电子邮件的单一(异步)页面。您可以使用Server.Transfer调用该页面,并在完成后将其重定向回所需的页面。

最后,如果您发送的电子邮件太多,以致在同步发送邮件时性能下降,那么也许您应该创建一个Windows服务来发送实际的电子邮件。您的ASP.NET页面会将请求排队到此服务(通过MSMQ或WCF),让服务发送电子邮件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1074976

复制
相关文章
异步fifo的工作原理(netty异步方法)
本次设计主要介绍异步FIFO中读写指针和格雷码的原理及其实现,最后会有代码和仿真文件
全栈程序员站长
2022/07/28
1K0
异步fifo的工作原理(netty异步方法)
java 异步调用方法_java异步调用方法有哪些?如何实现异步调用?
大家好,又见面了,我是你们的朋友全栈君。 你知道java异步调用方法都有哪些吗?下面的文章内容,就对这方面的问题做了一下整理,一起来看看java异步调用的方法吧! 1、利用Spring的异步方法去执行
全栈程序员站长
2022/09/14
4.1K0
动态加载js的异步与同步方法
最近新项目需要根据参数切换js的版本,就需要动态加载js,动态加载js涉及到异步加载与同步加载的问题,所以就封装了一下下面两个方法,以供使用。
用户10106350
2022/10/28
4.9K0
异步提交方法
异步提交的方法有很多种,比如说post、get等等,这些都是很常用的异步提交方法,还有的就是原生JS的提交方法,这个比较复杂。
PHY_68
2020/09/16
1.2K0
异步提交方法
异步模式之工作线程
让有限的工作线程(Worker Thread)来轮流异步处理无限多的任务。也可以将其归类为分工模式,它的典型实现 就是线程池,也体现了经典设计模式中的享元模式。
一个风轻云淡
2023/10/15
1770
Spring Boot 中如何支持异步方法
要使用 @Async,首先需要使用 @EnableAsync 注解开启 Spring Boot 中的异步特性。
李红
2019/10/14
1.5K0
CA1849:当在异步方法中时,调用异步方法
从任务返回方法调用时,存在 Async 后缀等效项的所有方法都会生成此警告。 此外,调用 Task.Wait()、Task<T>.Result 或 Task.GetAwaiter().GetResult() 将生成此警告。
呆呆
2022/02/26
1K0
【Android 异步操作】AsyncTask 异步任务 ( AsyncTask 异步任务执行方法 execute 方法相关源码解析 )
上一篇博客中 【Android 异步操作】AsyncTask 异步任务 ( 参数简介 | 方法简介 | 使用方法 | AsyncTask 源码分析 ) , 讲解了 AsyncTask<Params, Progress, Result> 异步任务的构造函数 ;
韩曙亮
2023/03/28
5030
【Flutter】FutureBuilder 异步编程 ( FutureBuilder 构造方法 | AsyncSnapshot 异步计算 )
FutureBuilder 将 异步操作 与 异步 UI 更新 结合在一起 ; 它可以将 异步操作 的结果 , 异步的 更新到 UI 界面中 ;
韩曙亮
2023/03/29
9540
zTree设置异步加载后展开
//不能直接配置展开属性 因为没有数据,需要添加回调函数,异步加载成功展开 callback: { onAsyncSuccess: zTreeOnAsyncSuccess } //异步加载成功回调函数 function zTreeOnAsyncSuccess(event, treeId, treeNode, msg){ $.fn.zTree.getZTreeObj(treeId).expandAll(true); }
河岸飞流
2019/08/09
1.2K0
如何实现异步执行
浏览器和服务器之间只一种面向无连接的HTTP协议进行通讯的,面向无连接的程序的特点是客户端请求服务端,服务端根据请求输出相应的程序,不能保持持久连接。
PM吃瓜
2019/08/12
1.1K0
异步任务如何测试?
收到这样的问题,其实大家的问题都是通用的,那么正好整理下我的一些观点,供参考。
雷子
2022/12/29
9990
ASP.NET 2.0 中的异步页[来自MSDN]
ASP.NET 2.0 提供了大量新功能,其中包括声明性数据绑定和母版页,成员和角色管理服务等。但我认为最棒的功能是异步页,接下来让我告诉您其中的原因。 当 ASP.NET 接收针对页的请求时,它从线程池中提取一个线程并将请求分配给该线程。一个普通的(或同步的)页在该请求期间保留线程,从而防止该线程用于处理其他请求。如果一个同步请求成为 I/O 绑定(例如,如果它调用一个远程 Web 服务或查询一个远程数据库,并等待调用返回),那么分配给该请求的线程在调用返回之前处于挂起状态。这影响了可伸缩性,原因是线程池
菩提树下的杨过
2018/01/23
1.9K0
ASP.NET 2.0 中的异步页[来自MSDN]
SpringBoot@Async异步方法
最近呢xxx接到了一个任务,是需要把AOP打印出的请求日志,给保存到数据库。xxx一看这个简单啊,不就是保存到数据库嘛。一顿操作猛如虎,过了20分钟就把这个任务完成了。xxx作为一个优秀的程序员,发现这样同步保存会增加了接口的响应时间。这肯定难不倒xxx,当即决定使用多线程来处理这个问题。终于在临近饭点完成了。准备边吃边欣赏自己的杰作时,外卖小哥临时走来了一句,搞这样麻烦干啥,你加个@Async不就可以了。
不一样的科技宅
2020/07/07
1.4K0
SpringBoot@Async异步方法
如何在SpringBoot中异步请求和异步调用
可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在耗时处理完成(例如长时间的运算)时再对客户端进行响应。
架构师修炼
2020/07/20
2.1K0
如何在SpringBoot中异步请求和异步调用
rabbitmq异步处理_怎么解决js异步方法执行顺序
RabbitMQ即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。 使用RabbitMQ实现异步更新文章浏览量,提升阅读文章时的响应速度。从直接更新数据库耗时450ms到异步更新数据库耗时50ms,明显提升接口性能,非常的nice~
全栈程序员站长
2022/11/09
2.7K0
rabbitmq异步处理_怎么解决js异步方法执行顺序
Spring开启方法异步执行
@EnableAsync @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Import(Async
Java技术栈
2018/03/30
1.4K0
Spring开启方法异步执行
C# 将 Begin 和 End 异步方法转 task 异步
在 .NET Framework 有两个不同的异步方法,一个是 Asynchronous Programming Model (APM) 另一个是 Task-based asynchronous pattern (TAP) 说 APM 和 TAP 估计大家都不认识。其实 APM 就是有成对的 Begin 和 End 方法的异步,而 TAP 就是使用 async 和 await 的异步
林德熙
2022/08/04
6550
Spring认证指南|了解如何创建异步服务方法。
本指南将指导您创建对 GitHub 的异步查询。重点是异步部分,这是扩展服务时经常使用的功能。
IT胶囊
2022/04/02
6670
Spring认证指南|了解如何创建异步服务方法。
如何在SpringBoot中异步请求和异步调用
链接 | cnblogs.com/baixianlong/p/10661591.html
JavaFish
2020/02/19
1.7K0
如何在SpringBoot中异步请求和异步调用

相似问题

使方法异步

50

如何使此异步方法调用工作?

38

如何使异步API工作?

11

如何使方法调用异步

12

如何使此方法异步?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档