摘要:
消息的消费者接收消息可以采用两种方式:1、consumer.receive() 或 consumer.receive(int timeout);2、注册一个MessageListener。采用第一种方式,消息的接收者会一直等待下去,直到有消息到达,或者超时。后一种方式会注册一个监听器,当有消息到达的时候,会回调它的 onMessage()方法。下面举例说明:MessageConsumer comsumer = session.createConsumer(queue);comsumer.setMessageListener(new MessageListener(){@Overridepubl 阅读全文
摘要:
前一讲简单的介绍了一下JMS的基本概念, 这一讲结合一个例子让大家深入理解前一讲的基本概念. 首先需要做的是选择一个JMS提供者, 如果在JavaEE环境中可以不用考虑这些. 我们选择ActiveMQ, 官方地址: http://activemq.apache.org/. 网上有很多介绍ActiveMQ的文档, 所以在这里就不介绍了.按照上一讲的这个简图,ConnectionFactory---->Connection--->Session--->MessageDestination + Session------------------------------------& 阅读全文
摘要:
1. JMS基本概念 JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企 业应用的开发。它支持两种消息通信模型:点到点(point-to-point)(P2P)模型和发布/订阅(Pub /Sub)模型。P2P 模型规定了一个消息只能有一个接收者;Pub/Sub 模型允许一个消息可以有多个接收者。对于点到点模型,消息生产者产生一个消息后,把这个消息发送到一个Queue(队列)中,然后消息接收者再从这个Queue中读取,一旦这个消息被一个接 收者读取之后,它就在这个Queue中消失了,所以一个消息只能被一个接收者消费。与点到点模型不 阅读全文
摘要:
本文内容包括如何通过C#代码安装Windows Service(exe文件,并非打包后的安装文件)、判断Service是否存在、获得Service状态及启动停止Service。 创建Windows Service项目并Build得到exe文件,如何创建 Service 可参考创建windows service 并打包成安装文件。一、 Windows服务的安装和卸载 安装和卸载服务可以使用 .NET 工具installutil.exe (eg:安装-> installutil xxx.exe 卸载-> installutil /u xxx.exe),使用ManagedInstalle 阅读全文
摘要:
前提:要打包的WinForm已经编译完成。注:到对应应用程序文件目录下的bin文件夹中可以查看编译好的exe文件。1. 文件—> 新建—>项目 在“新建项目”对话框选择“其他项目类型” 然后选择 “安装项目”,命名项目名,然后“确定” 然后出现下图2. Application Folder 是安装程序之后,程序文件所在位置等信息,包含所有bin文件夹下Debug中的文件,将其全部加入“应用程序文件夹”。注:右击Application Folder(即“应用程序文件夹”),选择“属性窗口”,将DefaultLocation属性的值“[ProgramFilesFolder][Manuf 阅读全文
摘要:
一个简单的Form, 按钮btnTest是enabled=false。在btnEnable的Click事件中 创建线程,在线程中尝试设置btnTest.Enabled = true; 发生异常:线程间操作无效: 从不是创建控件“btnTest”的线程访问它。代码如下: 1 using System; 2 using System.Threading; 3 using System.Windows.Forms; 4 5 namespace TestingUIThread 6 { 7 public partial class Form1 : Form 8 { 9 Th... 阅读全文
摘要:
在开发Window应用程序的时候,经常需要在界面上显示出已经执行到什么步骤了,拿一个简单例子来说,创建一个Winform程序,在窗体上访一个Button和一个Label,点击Button时做100次循环,在Label上实时显示当前循环的次数。一种简单的做法就是使用Application.DoEvents,代码如下:private void btnTest_Click(object sender, EventArgs e) { for (int i = 0; i < 100; i++) { Thread.Sleep(100); label1.Tex... 阅读全文