C#CWorker类简介

学习ServiceBase继承的类时,经常会遇到C# CWorker类问题,这里将介绍C# CWorker类问题的解决方法。

创新互联专注于昌乐企业网站建设,成都响应式网站建设,商城网站制作。昌乐网站建设公司,为昌乐等地区提供建站服务。全流程按需求定制开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

服务的基本结构是从ServiceBase继承的类。重要的方法包括 OnStart、OnStop、OnPause 和 OnContinue ,每一个替代方法都与一个服务控制操作直接对应。OnStart 方法的目的是创建 CWorker对象,
而C# CWorker类又创建 CWorkerThread对象,然后在该对象中创建执行服务工作的线程。

服务的运行时配置(以及 CWorker和 CWorkerThread对象的属性)是在基于 XML的配置文件中维护的。它的名称与创建的 .exe 文件相同,但带有一个.cfg 后缀。配置示例如下:

 
 
 
  1. 〈?xml version="1.0"?〉
  2. 〈configuration〉
  3. 〈ProcessList〉
  4. 〈ProcessDefinition
  5. ProcessName="Worker1"
  6. ProcessDesc="Message Worker with 2 Threads"
  7. ProcessType="AppSpecific"
  8. ProcessThreads="2"
  9. InputQueue=".private$test_load1"
  10. ErrorQueue=".private$test_error"〉
  11. 〈OutputList〉
  12. 〈OutputDefinition OutputName=".private$test_out11" /〉
  13. 〈OutputDefinition OutputName=".private$test_out12" /〉
  14. 〈/OutputList〉
  15. 〈/ProcessDefinition〉
  16. 〈ProcessDefinition
  17. ProcessName="Worker2"
  18. ProcessDesc="Assembly Worker with 1 Thread"
  19. ProcessType="Assembly"
  20. ProcessThreads="1"
  21. InputQueue=".private$test_load2"
  22. ErrorQueue=".private$test_error"〉
  23. 〈OutputList〉
  24. 〈OutputDefinition OutputName="C:MSDNMessageServiceMessage
  25. Example.dll" /〉
  26. 〈OutputDefinition OutputName="MSDNMessageService.Message
  27. Sample.ExampleClass"/〉
  28. 〈/OutputList〉
  29. 〈/ProcessDefinition〉
  30. 〈/ProcessList〉
  31. 〈/configuration〉 

CWorkerThread 和C# Cworker类都有相应的服务控制方法,根据服务控制操作进行调用。由于 Hashtable中引用了每一个 CWorker对象,因此需要枚举 Hashtable的内容,以调用适当的服务控制方法: foreach (CWorker cWorker in htWorkers.Values)  cWorker.Start();

类似地,实现的 OnPause、OnContinue和 OnStop 方法是通过调用CWorker 对象上的相应方法来执行操作的。

C# CWorker类

C# CWorker类的主要功能是创建和管理 CWorkerThread对象。Start 、Stop、Pause 和 Continue 方法调用相应的 CWorkerThread方法。实际的CWorkerThread 对象是在Start 方法中创建的。与使用 Hashtable管理辅
助对象引用的 Service类相似,CWorker 使用 ArrayList(简单的动态数组)来维护线程对象的列表。

分享文章:C#CWorker类简介
网页URL:http://www.shufengxianlan.com/qtweb/news5/30105.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联