我爱Aspx >> Asp.Net >> C#:消息队列应用程序
C#:消息队列应用程序
- :未知 Դ:internet :2007-5-5 19:50:32 ؼ:c#
- 方法为服务提供了轻松清除类实例的途径。因为仅在垃圾回收的过程中才调用类实例的析构函数,所以确保所有占用昂贵资源(例如数据库连接)的类都有一个能够在析构之前被调用的方法,用来释放这些资源,这是一种非常好的构思。
名称空间
在这里先简单介绍一下名称空间。名称空间允许在内部和外部表示中将应用程序组织成为逻辑元素。服务内的所有代码都包含在 MSDNMessageService.Service 名称空间内。尽管服务代码包含在若干文件中,但是由于它们包含在同一名称空间中,因此用户不需要引用其他文件。 由于 IWebMessage 接口包含在 MSDNMessageService.Interface 名称空间中,因此使用此接口的线程类具有一个接口名称空间。 服务类
应用程序的目的是监视和处理消息队列,每一队列在收到消息时都执行不同的进程。应用程序是作为 Windows 服务来实现的。 ServiceBase 类
如前所述,服务的基本结构是从 ServiceBase
继承的类。重要的方法包括 OnStart
、OnStop
、OnPause
和 OnContinue
,每一个替代方法都与一个服务控制操作直接对应。OnStart
方法的目的是创建 CWorker
对象,而 CWorker
类又创建 CWorkerThread
对象,然后在该对象中创建执行服务工作的线程。 服务的运行时配置(以及 CWorker
和 CWorkerThread
对象的属性)是在基于 XML 的配置文件中维护的。它的名称与创建的 .exe 文件相同,但带有一个 .cfg 后缀。配置示例如下:<?xml version="1.0"?> <configuration> <ProcessList> <ProcessDefinition ProcessName="Worker1" ProcessDesc="Message Worker with 2 Threads" ProcessType="AppSpecific" ProcessThreads="2" InputQueue=".\private$\test_load1" ErrorQueue=".\private$\test_error"> <OutputList> <OutputDefinition OutputName=".\private$\test_out11" /> <OutputDefinition OutputName=".\private$\test_out12" /> </OutputList> </ProcessDefinition> <ProcessDefinition ProcessName="Worker2" ProcessDesc="Assembly Worker with 1 Thread" ProcessType="Assembly" ProcessThreads="1" InputQueue=".\private$\test_load2" ErrorQueue=".\private$\test_error"> <OutputList> <OutputDefinition OutputName="C:\MSDNMessageService\MessageExample.dll" /> <OutputDefinition OutputName="MSDNMessageService.MessageSample.ExampleClass"/> </OutputList> </ProcessDefinition> </ProcessList> </configuration> 对此信息的访问通过来自 System.Configuration 程序集的 ConfigManager
Ҷƪл˵?
- һƪWindows未公开函数揭密——之一
һƪASP值多少钱,还能值钱多久
- 关于我们 | 广告服务 | 网站建设 | 版权申明 | 申请链接 | 联系我们
- Copyright © 2007 5iaspx.COM. All Right Reserved.
- 本站内容仅供学习,研究,探讨,个人收藏,如有侵权,敬请联系我们,我们尽快解决!