首页 / 知识
关于多线程:ASP.NET中的BackgroundWorker线程
2023-04-15 01:23:00

BackgroundWorker thread in ASP.NET是否可以在以下情况下使用ASP.NET 2.0中的BackGroundWorker线程,以便浏览器端的用户不必等待很长时间? 情境 我主要关心的是在ASP.NET workerprocess线程池线程已久的情况下,保持BackgroundWorker线程运行,尝试发送50条电子邮件。 如果您不想使用AJAX库,或者电子邮件处理时间真的很长,并且会使标准的AJAX请求超时,则可以使用.net 1.1天内的"老方法" AsynchronousPostBack方法。 本质上,您要做的是让您的提交按钮以异步状态开始电子邮件处理,同时将用户带到中间页面。这样做的好处是您可以根据需要刷新中间页面,而不必担心达到标准超时。 当您的后台进程完成时,它将在数据库/应用程序变量/任何内容中放置一个"完成"标志。当您的中间页面刷新自身时,它将检测到此标志并自动将用户重定向到"完成"页面。 同样,AJAX可以解决所有这些问题,但是如果由于某种原因您必须在网络上进行非常密集或及时的处理,则此解决方案将为您服务。我在这里找到了不错的教程,并且还有更多的教程。 当我们在与第三方应用程序接口的" Web Check-in"类型应用程序上工作时,我必须使用这样的过程,并且它们的导入API太慢了。 编辑:嘎!诅咒你古兹拉和你类似神的打字能力8 ^ D。 您不应该从ASP.NET页进行任何线程化。当工作进程循环时,任何长时间运行的线程都有被杀死的危险。您无法预测何时会发生这种情况。 Windows服务需要处理所有长时间运行的进程。例如,您可以通过在MSMQ中放置一条消息来启动这些过程。
或在System.Net.Mail.SmtpServer上使用SendAsync方法。 您希望将发送电子邮件的代码放在另一个线程上,因为这将立即返回用户,并且将进行处理(无论花费多长时间)。 5年后,但是问题还是一样……如果您想从应用程序中执行即忘操作,而忘记了与ASP.NET应用程序中的后台作业处理相关的所有困难,则可以使用http://hangfire.io。
还有一个使用ASP.NET MVC在后台发送邮件的教程,用于将HangFire与邮政一起使用。 如果要在ASP页中使用多头处理,则可以使用以下简单的线程模型:
此方法是正确使用ASP页。当BackgroundWorker完成时,带有BackgroundWorker的ASP页将不会启动。 在这种情况下,您需要使用ASP.NET 2.0中添加的异步页面功能。
http://msdn.microsoft.com/en-us/magazine/cc163725.aspx 有可能的。从页面异步启动新线程后,页面请求将继续进行,并将页面发送回用户。异步线程将继续在服务器上运行,但不再有权访问该会话。 如果必须显示任务进度,请考虑一些Ajax技术。 |
最新内容
相关内容
linux命令中添加用户?
linux命令中添加用户?,系统,密码,软件,用户,命令,信息,目录,用户名,账号,文件夹,linux添加用户名1、打开xshell软件,远程访问您的服务器或虚拟linux下命令行浏览器?
linux下命令行浏览器?,地址,传播,工具,网站,软件,发行,网址,首次,官网,系统,linux在命令符界面如何浏览网页1、linux系统下命令行访问网页是culinux命令更改用户?
linux命令更改用户?,系统,密码,管理,用户,命令,环境,工作,地址,电脑,文件,linux如何更改用户名?1、首先打开linux的终端,输入指令修改用户名,简浏览器调用linux命令?
浏览器调用linux命令?,系统,信息,人工智能,软件,数据,首次,地址,代码,咨询,服务,求助大神,如何通过网页使用python向linux系统发送一些命令执linux命令创建用户组?
linux命令创建用户组?,系统,代码,密码,用户组,用户,命令,信息,名称,新增,管理,Linux中如何创建用户和用户组linux一条命令不能创建多个用户组浏览器调用linux命令?
浏览器调用linux命令?,系统,信息,人工智能,软件,数据,首次,地址,代码,咨询,服务,求助大神,如何通过网页使用python向linux系统发送一些命令执linux命令给用户授权?
linux命令给用户授权?,系统,数字,管理,权限,命令,密码,工具,时间,软件,信息,linux怎样给普通用户设置权限添加用户 添加账号就是在系统中创建linux线程查询命令?
linux线程查询命令?,系统,第一,线程,命令,软件,名称,信息,进程,选项,方法,Linux系统如何查看进程的线程数1、第一种方法:top命令法首先执行toplinux命令创建用户组?
linux命令创建用户组?,系统,代码,密码,用户组,用户,命令,信息,名称,新增,管理,Linux中如何创建用户和用户组linux一条命令不能创建多个用户组linux模拟请求命令?
linux模拟请求命令?,地址,工作,系统,工具,信息,标准,命令,目录,发行,数据,linux怎么加端口url请求在/etc/services中添加端口以及对应进程名及查看linux用户命令行?
查看linux用户命令行?,信息,系统,时间,名称,密码,用户,命令,地址,状态,设备,Linux查看所有用户用什么命令输入“cat /etc/passwd”命令查看所linux所有用户命令行?
linux所有用户命令行?,系统,信息,地址,工作,密码,命令,用户,时间,电脑,管理,Linux里怎么用命令查看所有用户1、您好,查看linux下所有用户步骤:第