ServiceHost host = new ServiceHost(typeof(Service1)); if (MessageQueue.Exists(@".\private\MyMessageQueue") == false) { MessageQueue.Create(@".\pr...
分类:
其他好文 时间:
2014-10-29 12:46:14
阅读次数:
219
在这篇文章开始前,我们先总结一下前两篇文章中关于Handler, Looper和MessageQueue等的一些关键点:
0)在线程中创建Handler之前,必须先调用Looper.prepare(), 创建一个线程局部变量Looper,然后调用Looper.loop() 进入轮循。
1)当Handler创建之后,就可以调用Handler的sendMessageAtTime方法发送消息,而实际上是调用MessageQueue的enqueueMessage方法,将对应的消息放入消息队列。
2)每一个线程都只有...
分类:
移动开发 时间:
2014-10-28 12:11:13
阅读次数:
266
在之前一篇介绍AsyncTask的文章中,我们在最后讲到,AsyncTask是利用Handler的消息异步处理机制,将操作结果,利用Message传回主线程,从而进行UI线程的更新的。
而在我们日常的开发工作中,Handler也是我们经常使用的类之一,那么Handler的主要作用是什么?
Handler 的主要作用就是对消息(消息可以是我们想做的一些UI更新,也可以是其他的一些不可见的操作,如操作数据库等)的异步处理机制,而相信大家都了解异步的概念。
简单地说一下:
1)从程序的角度来看,就是当执行某行代码...
分类:
移动开发 时间:
2014-10-27 17:50:51
阅读次数:
248
这两个的差别就在于是否有参数Looper,而Looper是一个线程相关的对象。
何谓线程相关的变量?就是线程间不能共享的对象,只在本线程内有作用的对象。
那么Looper对象的作用是什么?
从我个人的理解,Looper类就是对MessageQueue的封装,它主要做的是两件事:
1)构造Looper对象,初始化MessageQueue,我们可以从其构造函数看到:
可以看到,Loop对象被创建之后,会被放到ThreadLocal变量中,而ThreadLocal正是线程局部变量,这说明了关于Looper的一个特...
分类:
移动开发 时间:
2014-10-27 17:41:19
阅读次数:
173
一:handler,looper,message,messagequeue,threadhandler: 消息处理着,负责Message消息的发送(handler.sendMessage(....))以及处理消息,对于handler处理消息则需要实现handlerMessage(Message ms...
分类:
移动开发 时间:
2014-10-23 22:20:56
阅读次数:
336
1、handler 与Looper 与MessageQueue 、Message之间的关系
handler:是处理主线程(ui线程)处理耗时操作的线程,通过post message到MessageQueue队列中,使用handler需要实现 handlerMessage方法,通过更新主线程ui
Looper:每个Looper对应一个MessageQueue,在handler之前Looper....
分类:
移动开发 时间:
2014-10-21 15:27:17
阅读次数:
217
Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。
Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message?msg...
分类:
移动开发 时间:
2014-10-20 15:29:30
阅读次数:
268
public static final Looper myLooper() {
return (Looper)sThreadLocal.get();
}
先来个Handler执行过程的总结:
1、 Looper.prepare()方法
为当前线程绑定looper,
在looper构造方法中创建一个messageQueue
...
分类:
其他好文 时间:
2014-10-18 17:03:47
阅读次数:
178
目录一:MSMQ的一些理论上的知识二:队列类型(Queue Type)三:安装消息队列四:在C#中Messagequeue class五:MSMQ-发送消息到远程专用队列六:例子一、在学习Messagequeue 类之前,首先介绍一下MSMQ的一些理论上的知识 MSMQ(MicroSoft Mess...
分类:
Web程序 时间:
2014-10-17 02:01:23
阅读次数:
441
两台计算机的操作系统都是WindowsServer2008两台计算机都安装了MSMQ+Http支持两台计算机的防火墙全部关闭本地Ip:192.168.1.104远程Ip:192.168.1.142远程建立专有队列:Test本地发送消息的代码:System.Messaging.MessageQueue...
分类:
Windows程序 时间:
2014-10-17 00:53:53
阅读次数:
3252