教程集 www.jiaochengji.com
教程集 >  脚本编程  >  Asp.net  >  正文 用托管C 编写Windows服务

用托管C 编写Windows服务

发布时间:2016-12-05   编辑:jiaochengji.com
教程集为您提供用托管C 编写Windows服务等资源,欢迎您收藏本站,我们将为您提供最新的用托管C 编写Windows服务资源
 
用托管C 编写Windows服务
 
 
<span>         </span>多年以来,只要提到编写Windows服务,就会想到用Visual C 编写,同时,这也是其中一件C 程序员可以做,而VB程序员不可以做的事情。以前,我们只称其为“服务”或“NT服务”,现在,它们被命名为“Windows服务”,而且用VB.NET或C#也可以很容易地编写。
<span>         </span>但是,如果你想用托管C 来编写呢?毕竟,大多数有经验的Visual C 程序员都会写过一两个服务,也会知道怎样完成一个类似的工程。假设你有一个必须要一直运行以提供服务的程序,且连接着一些远程电脑,如果不想编写一本使用手册,告诉客户要记得在每次重启电脑之后重新运行此程序,你就应该使它成为一个服务;又假设你有一个用于删除过期数据库记录的便利维护工具,如果不想让管理员每周都亲手运行它一次,你就应该使它成为一个服务。看起来挺吸引人的,那就让我们开始吧。
 
 
<span>         </span>创建服务工程
<span>         </span>以下要做的事情非常简单:打开Visual Studio.NET,创建一个新的工程,在Visual C 工程下,选择Windows服务(.NET)。接下来,为这个服务取一个方便在电脑的服务列表中查找到的名字,在此为CGNotifier。向导会创建一个继承自System::ServiceProcess::ServiceBase的类并打开设计视图,在此,你可放入一个计时器、一个数据库连接,或其他不可见的组件。
<span>         </span>让我们转到代码视图中看一下生成的代码,在此有一个构造函数与一个Dispose方法,这两个你都可以忽略,还有一对重载的方法:OnStart()和OnStop)。在OnStart()中,可编写服务所需的代码。服务中一个重要的范畴是使用“事件引发对象”,例如System::IO::FileSystemWatcher的一个实例,一般可在OnStart()中创建这些对象,在本例中,你可为类加入事件方法,并处理在服务运行期间,由这些对象引发的事件。另有一种服务,它们对发生的事情不作反应,只在每天或每周的特定时间,执行一些特定的任务,这些服务平时通常处于休眠状态,但因为它们的工作状态是持续的,所以不应该停止它们,或者可以把它们放入一个循环中,在特定的时间检查它们是否已被停止。
<span>         OnStart()</span>方法是服务的开始之处,并且会在执行完后返回,在此方法完成之前,服务一般不会显示为“已启动”。这就意味着,不能在OnStart()中放入一个经常使用的循环,或从别处直接调用的任何方法。最直接的方法是设置好一个单独的方法,并在一个新线程中调用它,如下所示:
 
private:
 bool stopping;
 int loopsleep;<span>              //</span>毫秒
 Threading::Thread* servicethread;
 
protected:
 //设置好服务应做的工作
<span>    void OnStart(String* args[])</span>
<span>    {</span>
<span>      Threading::ThreadStart* threadStart =</span>
<span>               new Threading::ThreadStart(this,</span>

您可能感兴趣的文章:
用托管C 编写Windows服务
COM Web 服务:通过复选框路由到 XML Web Services (转)4-Web_Ser
flask怎么部署
Golang 微服务教程(一)
C#下实现动态系统托盘图标
windows系统进程全攻略
用托管C 监视Windows事件日志
C#中timer类定时器控件的应用实例
asp.net 析构函数详解与用法
Windows 集成的身份验证连接SQL Server数据库,打造更安全的连接-Web_Servic

[关闭]
~ ~