动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.EasyJWeb-Velocity脚本简明教程.
.java swing的拖放例子.
.J2SE 1.5新特性简介.
.JDB 的简单使用.
.用Spring更好地处理Struts动作三.
.NetBeans IDE 4.1 快速入门指南(.
.java版本的冒泡算法.
.字节码防止内存错误及提高代码质.
.JML起步--使用JML改进你的Java程.
.使用JavaExcel API 往excel中插入.
.利用Jakarta Commons Lang简化Ja.
.java学习:彻底明白Java的IO系统.
.Java Applet编程技巧.
.Java程序性能优化(辛苦了几个小时.
.破除Java神话之一.
.如何在Linux下配置Java开发环境详.
.Enterprise JavaBeans组件慨述之.
.Java初学者需掌握的30个基本概念.
.J2SE中的序列化详解(一).
.六个 for 循环的Java小程序源码展.

用.net创建windows service的总结

发表日期:2008-1-5 |



  前言
  
  net为创建windows service提供了专门的类库,结束了以前开发windows service窘迫的局面。你甚至可以不用添加一行代码,就可以用wizard生成一个windows service。
  
  一、用wizard生成最基本的框架
  
  此时,系统会为你生成一个框架,部分主要源代码如下:
  
  using System;
  
  using System.Collections;
  
  using System.ComponentModel;
  
  using System.Data;
  
  using System.Diagnostics;
  
  using System.ServiceProcess;
  
  namespace WindowsService1
  
  {
  
   public class Service1 : System.ServiceProcess.ServiceBase
  
   {
  
  
  
   private System.ComponentModel.Container components = null;
  
  
  
   public Service1()
  
   {
  
   InitializeComponent();
  
   }
  
   static void Main()
  
   {
  
   System.ServiceProcess.ServiceBase[] ServicesToRun;
  
   ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() };
  
   System.ServiceProcess.ServiceBase.Run(ServicesToRun);
  
   }
  
   private void InitializeComponent()
  
   {
  
   components = new System.ComponentModel.Container();
  
   this.ServiceName = "Service1";
  
   }
  
   protected override void Dispose( bool disposing )
  
   {
  
   if( disposing )
  
   {
  
   if (components != null)
  
   {
  
   components.Dispose();
  
   }
  
   }
  
   base.Dispose( disposing );
  
   }
  
   protected override void OnStart(string[] args)
  
   {
  
  
  
   }
  
   protected override void OnStop()
  
   {
  
  
  
   }
  
   }
  
  }
  
  
  
  有必要将其结构讲解一下。其中,System.ServiceProcess就是要害所在,是引入windows service的地方。其中的OnStart()、OnStop()两个函数能够被windows服务治理器或者MMC调用,进行服务的启动、停止。
  
  二、构建一个服务
  
  该框架提供了一个空的服务,什么也不能做。所以我们要给它添加代码。比如,我想
  
  做一个能够扫描数据库的服务,要求每次扫描完之后间隔一秒钟,然后继续扫描。
  
  根据上面的要求,初步设想需要一个timer类,查命名空间,发现有二个不同的timer类,他们是:
  
  1、 System.Windows.Forms.Timer
  
  2、 System.Timers.Timer
  
  还有一个System.Threading,带有sleep方法
  
  究竟该用哪个呢?
  
  细查MSDN,会找到只有2适合,对于1来说,timer控制时间不够精确,对于线程来说,实现比较困难。
  
  三、规划一下流程
  
  基于该服务的要求,确定服务的流程如下:
  
  
  
  为此,我们定义两个函数:_Scan(bool _judge)、_DO_Something()
  
  然后引入System.Timers命名空间,并且定义一个_timer对象,这些代码如下:
  
  1、using System.Timers; //引入System.Timers
  
  2、public System.Timers.Timer _timer; //定义对象_timer
  
  3、public bool _Scan(bool _judge)
  
   {
  
   //TODO
  
   }
  
  4、public void _DO_Something()
  
   {
  
   //TODO
  
   }
  
  
  
  然后在InitializeComponent()里边把_timer的Elapsed事件添加上,代码如下:
  
  this._timer.Elapsed += new System.Timers.ElapsedEventHandler(this._timer_Elapsed);
  
   定义_timer_Elapsed事件,代码如下:
  
  private void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
  
   {
  
   _timer.Interval=1000;
  
   _timer.Enabled=false;
  
   if(_Scan()==true)
  
   {
  
   _DO_Something();
  
   }
  
   _timer.Enabled=true;
  
   }
   最后,我们不要忘记添加windows service的installer,也是一个wizard,基本上不需要添加一行代码。然后编译,生成一个可执行文件。注重:因为这不是普通的可执行文件,所以不能通过双击实现运行,只能通过installutil YourServiceName、NET START YourServiceName、NET STOP YourServiceName、installutil/u YourServiceName来进行该服务的安装、启动、停止、暂停(可选)、卸载。最好是做成批处理文件,一劳永逸。^_^
  
  tojike(原作)
上一篇:Java技巧:使用Runtime.exec重定向本地程序调用 人气:832
下一篇:用java开发Email工具之发送邮件 人气:972
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-11-21 AutoIndex v2.2.4 多国语言版
2008-11-21 ASBLOG v2.5 bulid 081118
2008-11-21 phpwebsite v1.60
2008-11-21 DreamArticle 文章管理系统 v3.0
2008-11-21 DreamArticle 文章管理系统 v3.0
2008-11-21 Piwik ( PHP统计系统,可以和GOOG
2008-11-21 CMS001 v2.2 Beta
2008-11-21 magento开源电子商务平台 v1.1.7
2008-11-21 开良马克思影视下载插件 v1.1
2008-11-21 傲游(Maxthon) 2.1.5 正式版
2008-11-21 Skype v3.8.0.188 Final
2008-11-21 AirPlay OpenAlpha 2008.11.20
2008-11-21 屏幕文字抓取工具 DWMouse1.3.510
2008-11-21 Vista一键还原(Vista Ghost)1.
2008-11-21 SP Photo Fix照片修改1.2破解版
2008-11-21 QQ腾讯聊天工具 v1.2正式版
2008-11-21 FlightTrack航班信息v1.0破解版
2008-11-21 RealPiano仿真钢琴1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成