C# CWorker类简介

开发 后端
这里介绍C# CWorker类的主要功能是创建和管理 CWorkerThread对象。Start 、Stop、Pause 和 Continue 方法调用相应的 CWorkerThread方法。

学习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(简单的动态数组)来维护线程对象的列表。

【编辑推荐】

  1. C#窗体里调用浅谈
  2. C#调用ListEmployee命令
  3. C# CreateEmployeeDefinition()函数
  4. C#实现断点续传详细剖析
  5. C# Employee对象浅谈
责任编辑:佚名 来源: 博客园
相关推荐

2009-08-26 17:05:23

C# ThreadPo

2009-09-07 13:33:36

C# Pop3Conn

2009-09-02 17:10:45

C#语言入门

2009-08-25 17:07:27

C#虚拟方法

2009-08-25 17:49:07

C#入门

2009-08-20 14:28:00

C#静态构造函数

2009-08-12 14:49:33

C#移位运算符

2009-08-12 13:35:22

C#关系运算符

2009-08-12 14:29:32

C#条件运算符

2009-08-25 17:52:01

C#可空值类型

2009-08-17 17:36:08

C# 枚举

2009-08-26 17:28:48

C# DateTime

2009-09-02 17:19:43

C#换行连接符

2009-08-21 17:07:53

C# Convert.

2009-08-21 17:24:06

C# SingleIn

2009-09-07 14:29:52

C# ServiceC

2009-08-06 14:43:10

C# Calculat

2009-08-21 17:24:06

C# SingleIn

2009-09-03 10:42:16

C# Employee

2009-08-12 09:41:28

C# Director
点赞
收藏

51CTO技术栈公众号