当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: Carl NolanMicrosoft Corporation 摘要:本文概述一种用于处理若干消息队列的 Windows 服务解决方案,重点介绍 .NET 框架和 C# 应用程序。
 

 

 ·visualbasic.net带来的新方法(二)    »显示摘要«
    摘要: visual basic.net带来的新方法(二) 继承性 对于visual basic来说,对继承性的支持是最需要的。在internet时代的开发需要快速的组建以及大规模的重用。现在,visual basic包含了一整套的继承性的落实,包括可视窗口的继承。 开发者可以通过一个新的关键字 inherits 来从一个已存在的类中创建继承。 class1 function getcus......
 ·c#简介:vc的net,java的killer?    »显示摘要«
    摘要: 第一篇 c#简介:vc的net,java的killer? c#是在c,c++的基础上发展起来的,是一种有网络风格,面向对象的跨语言平台的程序设计语言。c#的编译器输出的代码,可以称为‘受控代码’(managed code),受控代码并不能在目标机器上直接运行,它形成了一种文件,包含了与传统计算机语言不同的语言:中间语言(intermediate lang......


C#:消息队列应用程序

carl nolan

摘要:本文概述一种用于处理若干消息队列的 windows 服务解决方案,重点介绍 .net 框架与 c# 应用程序. 【程序编程相关:利用微软WebService技术实现远程

microsoft corporation 【推荐阅读:C#v.sjava再贴+评点

目录 【扩展信息:.NET和COM之间的相互访问

下载 csharpmessageservice.exe 示例文件 (86 kb)

简介

.net 框架应用程序

     应用程序结构

     服务类

     检测设备

     安装

总结

参考资料

简介

microsoft 近期推出了一种用于生成集成应用程序的新平台——microsoft .net 框架..net 框架允许开发人员使用任何编程语言迅速生成与部署 web 服务与应用程序.microsoft intermediate language (msil) 与实时 (jit) 编译器使这种不依赖语言的框架得以实现.

与 .net 框架同时面世的还有一种新的编程语言 c#(读作“c sharp”).c# 是一种简单.新颖.面向对象与类型安全的编程语言.利用 .net 框架与 c#(除 microsoft® visual basic® 与 managed c++ 之外),用户可以编写功能强大的 microsoft windows® 与 web 应用程序及服务.本文提供了这样的一个解决方案,它的重点是 .net 框架与 c# 而不是编程语言.c# 语言的介绍可以在“ c# 简介与概述(英文)”找到.

近期的文章“msmq:可伸缩.高可用性的负载平衡解决方案(英文)”介绍了一种解决方案,用于高可用性消息队列 (msmq) 的可伸缩负载平衡解决方案体系结构.此解决方案中涉及了一种将 windows 服务用作智能消息路由器的开发方案.这样的解决方案以前只有 microsoft visual c++® 程序员才能实现,而 .net 框架的出现改变了这种情况.从下面的解决方案中,您可以看到这一点.

.net 框架应用程序

这里介绍的解决方案是一种用来处理若干消息队列的 windows 服务;其中每个队列都是由多个线程进行处理(接收与处理消息).处理程序使用循环法技术或应用程序特定值(消息 appspecific 属性)从目的队列列表中路由消息,并使用消息属性来调用组件方法.(示例进程也属于这种情况.)在后一种情况下,组件的要求是它能够实现给定的接口 iwebmessage.要处理错误,应用程序需要将不能处理的消息发送到错误队列中.

消息应用程序的结构与以前的活动模板库 (atl) 应用程序相似,它们之间的主要不同在于用于管理服务的代码的封装与 .net 框架组件的使用.要创建 windows 服务,.net 框架用户仅仅需要创建一个从 servicebase(来自 system.servicecontrol 程序集)继承的类.这毫不奇怪,因为 .net 框架是面向对象的.

应用程序结构

应用程序中主要的类是 servicecontrol,它是从 servicebase 继承的.因而,它必须实现 onstart 与 onstop 方法,以及可选的 onpause 与 oncontinue 方法.事实上,类是在静态方法 main 内构造的:

using system; using system.serviceprocess; public class servicecontrol: servicebase { // 创建服务对象的主入口点 public static void main() { servicebase.run(new servicecontrol()); } // 定义服务参数的构造对象 public servicecontrol() { canpauseandcontinue = true; servicename = "msdnmessageservice"; autolog = false; } protected override void onstart(string[] args) {...} protected override void onstop() {...} protected override void onpause() {...} protected override void oncontinue() {...} }

servicecontrol 类创建一系列 cworker 对象,即,为需要处理的每个消息队列创建 cworker 类的一个实例.根据定义中处理队列所需的线程数目,cworker 类依次创建了一系列的 cworkerthread 对象.cworkerthread 类创建的一个处理线程将执行实际的服务工作.

使用 cworker 与 cworkerthread 类的主要目的是确认服务控件 start.stop.pause 与 continue 命令.因为这些进程必须是无阻塞的,命令操作最终将在后台处理线程上执行.


...   下一页
 ·.net中的特殊类型成员    »显示摘要«
    摘要: .net中的特殊类型成员......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE