最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
ASP.NET中执行耗时操作的解决方案
时间:2013-01-05 编辑:简简单单 来源:一聚教程网
在ASP.NET中可以利用多线程方式来达到同样的目的。
多线程
代码如下 | 复制代码 |
<%@ Page language="c#" Codebehind="WebForm54.aspx.cs" AutoEventWireup="false" Inherits="csdn.WebForm54" %> |
后台修改如下:
代码如下 | 复制代码 |
using System; namespace csdn private void Page_Load(object sender, System.EventArgs e) #region Web 窗体设计器生成的代码 } private void btn_startwork_Click(object sender, System.EventArgs e) public class work public void runwork() private void dowork() 网管管理中的耗时操作,往往又是重复性的操作。比如说生成静态页面,往往要周期性的重新生成一遍。这种任务,使用程序自动执行来完成更符合我们的要求。 在ASP.NET中使用多线程结合 代码 public interface ISchedulerWork //考核模块——考核个人通知邮件任务 } //建立一个配置对象,用来存储要定期执行的任务和执行的时间间隔。 //任务列表
//调度配置类的构造函数 //调度类,定时执行配置对象的任务 public Scheduler(SchedulerConfiguration config) public void Start() |
在程序全局事件中:
代码
protected void Application_Start(object sender, EventArgs e)
{
SchedulerConfiguration config =
new SchedulerConfiguration(1000 * 60 * 60 * 23);
config.Jobs.Add(new .EmailSendingJob());
Scheduler scheduler = new Scheduler(config);
schedulerThread = new System.Threading.Thread(new System.Threading.ThreadStart(scheduler.Start));
schedulerThread.Start();
}
protected void Application_End(object sender, EventArgs e)
{
try
{
//程序退出时进行销毁
if (schedulerThread != null)
{
schedulerThread.Abort();
}
}
catch
{
//operation
;
}
}
方法,就能实现类似windows计划任务的功能。从而实现0干预的管理。
在WEB应用程序中使用多线程执行任务,其环境跟普通的asp.net页面有一些不同。例如页面中的HttpContext在多线程程序中就不能正常使用。想使用这个对象怎么办呢?很简单,既然是对象,传过去就行了。
相关文章
- 理解Asp.Net中WebForm的生命周期 06-20
- asp.net中使用母版制作出的页脚效果 05-17
- ASP.NET在使用X509Certificate2出现问题时的一些解决方法 05-16
- ASP.NET 定时器回调方法的重入 04-20
- 剖析Asp.Net Web API路由系统---WebHost部署方式 04-13
- Asp.net用Button打开另一个的frm的教程 12-26