06 2017 档案
RabbitMQ系列教程之四:路由(Routing)
摘要:(使用Net客户端)在上一个教程中,我们构建了一个简单的日志系统,我们能够向许多消息接受者广播发送日志消息。在本教程中,我们将为其添加一项功能 ,这个功能是我们将只订阅消息的一个子集成为可能。 例如,我们可以只将关键的错误消息输出到日志文件(以节省磁盘空间),同时仍然可以在控制台上打印所有日志消息。
阅读全文
其他信息: 线程间操作无效: 从不是创建控件“控件名”的线程访问它。
摘要:在多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,如果需要访问窗口中的控件,有以下解决办法 1.可以在窗口构造函数中将CheckForIllegalCrossThreadCalls设置为 false 2.使用委托调用 声明委托: 使用委托在多线程中执行: 这就是多线程界面元素操作的2种解决
阅读全文
RabbitMQ系列教程之三:发布/订阅(Publish/Subscribe)
摘要:(本教程是使用Net客户端,也就是针对微软技术平台的) 在前一个教程中,我们创建了一个工作队列。工作队列背后的假设是每个任务会被交付给一个【工人】。在这一部分我们将做一些完全不同的事情--我们将向多个【消费者】传递信息。这种模式被称为“发布/订阅”。 为了说明这种模式,我们将构建一个简单的日志系统。
阅读全文
编写高质量代码改善程序的157个建议:使用Dynamic来简化反射的实现
摘要:最近有时间看点书了,把157个建议在重新看一遍,代码都调试一遍。当我看到第15个建议的时候有些出入,就记录下来,欢迎大家来探讨。 第十五条建议是,使用dynamic简化反射的使用,如果是针对这句话来讲,没问题,是正确的。dynamic的确可以简化反射的使用,但是从性能上来说是有条件的,可以根据自己情
阅读全文
面向对象设计模式纵横谈:Bridge 桥接模式(笔记记录)
摘要:桥接模式是一个比较难理解的设计模式,设计和分析的时候也不容易把握,咱们听听“李建忠”老师是怎么来讲的。我们还是从演变的角度来说问题,一步一步的来把问题说清楚。先谈谈“抽象”和“实现”的关系。 抽象与实现 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。这个东西很容易理解,抽象的东西是从众多的实例里
阅读全文
面向对象设计模式纵横谈:Adapter 适配器模式(笔记记录)
摘要:适配(转换)的概念无处不在 适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。生活中适配转换的例子太多了,也是设计模式里面比较容易理解的一个模式。 动机(Motivation) 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口
阅读全文
Node.js安装和配置
摘要:今天有时间开始要研究Node.js了,项目的需要,先把环境正好,初次接触,把安装和配置过程记录下来,以备不时之需。言归正传。 1、打开NodeJS的官网,下载和自己系统相配的NodeJS的安装程序,包括32位还是64位一定要选择好,否则会出现安装问题。 下载地址:https://nodejs.org
阅读全文
RabbitMQ系列教程之二:工作队列(Work Queues)
摘要:今天开始RabbitMQ教程的第二讲,废话不多说,直接进入话题。 (使用.NET 客户端 进行事例演示) 在第一个教程中,我们编写了一个从命名队列中发送和接收消息的程序。在本教程中,我们将创建一个工作队列,这个队列将用于在多个工人之间分配耗时的任务。 工作队列【又名:任务队列】背后主要的思想是避免立
阅读全文
RabbitMQ系列教程之一:我们从最简单的事情开始!Hello World
摘要:一、简介 RabbitMQ是一个消息的代理器,用于接收和发送消息,你可以这样想,他就是一个邮局,当您把需要寄送的邮件投递到邮筒之时,你可以确定的是邮递员先生肯定会把邮件发送到需要接收邮件的人的手里,不会送错的。在这个比喻中,RabbitMQ就是一个邮箱,也可以理解为邮局和邮递员,他们负责把消息发送出
阅读全文