当前位置: 首页 > news >正文

ASP.NET(C#) 如何定时执行一段代码?

在Global.asax启动一条线程就ok了,下面是启动线程定时写文件的例子

Global.asax

C# code


ContractedBlock.gif ExpandedBlockStart.gif Code
 1<%@ Application Language="C#" %>
 2<%@ Import Namespace="System.IO" %>
 3<%@ Import Namespace="System.Threading" %>
 4<script runat="server">
 5    string LogPath;
 6    Thread thread;
 7    void WriteLog()
 8ExpandedBlockStart.gifContractedBlock.gif    {
 9        while (true)
10ExpandedSubBlockStart.gifContractedSubBlock.gif        {
11            StreamWriter sw = new StreamWriter(LogPath, true, Encoding.UTF8);
12            sw.WriteLine(thread.Name + ":" + DateTime.Now.ToString());
13            sw.Close();
14            Thread.CurrentThread.Join(1000 * 60);//阻止1分钟
15        }

16    }

17    void Application_Start(object sender, EventArgs e)
18ExpandedBlockStart.gifContractedBlock.gif    {
19        LogPath = HttpContext.Current.Server.MapPath("log.txt");
20        //在应用程序启动时运行的代码
21         thread = new Thread(new ThreadStart(WriteLog));
22        thread.Name = "写登录日志线程";
23        thread.Start();
24    }

25   
26    void Application_End(object sender, EventArgs e)
27ExpandedBlockStart.gifContractedBlock.gif    {
28        //在应用程序关闭时运行的代码
29
30    }

31       
32    void Application_Error(object sender, EventArgs e)
33ExpandedBlockStart.gifContractedBlock.gif    {
34        //在出现未处理的错误时运行的代码
35
36    }

37
38    void Session_Start(object sender, EventArgs e)
39ExpandedBlockStart.gifContractedBlock.gif    {
40        //在新会话启动时运行的代码
41
42    }

43
44    void Session_End(object sender, EventArgs e)
45ExpandedBlockStart.gifContractedBlock.gif    {
46        //在会话结束时运行的代码。
47        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
48        // InProc 时,才会引发 Session_End 事件。如果会话模式
49        //设置为 StateServer 或 SQLServer,则不会引发该事件。
50
51    }

52      
53</script>

转载于:https://www.cnblogs.com/homezzm/archive/2009/11/26/1610989.html

相关文章:

  • 巧用SAR命令维护linux系统
  • 全国公共英语五级(PETS-5) 写作作文
  • 【读书笔记】C# in Depth (2)
  • java传值问题.
  • WorldWind学习系列八:Load/Unload Plugins——直捣黄龙篇
  • 计算字符串的相似度(VB2005)
  • AS3+touchlib+GoogleMap=多点触摸GoogleMap
  • 深入浅出ASP.NET
  • 重谈字符串连接性能(下):分析优化
  • [翻译]CryEngine3人工智能的正确设置——高级技巧
  • 莫贪 勿迫
  • PHP连接MySQL的数据库类文件【转】
  • 网络DNS域名转换成IP地址
  • 软件开发综合社区
  • 【Leetcode】101. 对称二叉树
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • CSS 专业技巧
  • HomeBrew常规使用教程
  • idea + plantuml 画流程图
  • JavaWeb(学习笔记二)
  • java第三方包学习之lombok
  • LeetCode算法系列_0891_子序列宽度之和
  • Logstash 参考指南(目录)
  • nginx 负载服务器优化
  • Node 版本管理
  • 关于extract.autodesk.io的一些说明
  • 诡异!React stopPropagation失灵
  • 聚簇索引和非聚簇索引
  • 目录与文件属性:编写ls
  • 前端路由实现-history
  • 双管齐下,VMware的容器新战略
  • 为什么要用IPython/Jupyter?
  • 应用生命周期终极 DevOps 工具包
  • nb
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​HTTP与HTTPS:网络通信的安全卫士
  • # 达梦数据库知识点
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • $.ajax中的eval及dataType
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)计算机毕业设计高校学生选课系统
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (三)elasticsearch 源码之启动流程分析
  • (转)母版页和相对路径
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET : 在VS2008中计算代码度量值
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET导入Excel数据
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .Net环境下的缓存技术介绍
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • @RequestMapping用法详解