03 2014 档案

C#线程通信与异步委托
摘要:线程的通知机制AutoResetEvent是线程实现通知操作的重要方法。通常,AutoResetEvent用于通知正在等待线程已发生事件,允许线程通过发信号互相通信。AutoResetEvent时间对象提供了给我们可以控制线程执行的先后顺序,他的常用方法:Set设置并发送信号Reset重置信号,也就是使信号无效WaitOne等待一个信号WaitAny静态方法,等待一个信号数组,信号数组里面有任何信号都可以,否则等待WaitAll静态方法,等待一个i额信号数组,信号数组里面的信号全部到齐才可以,否则等待创建一个AutoResetEvent对象,构造方法里面需要带一个bool类型的参数,AutoR 阅读全文

posted @ 2014-03-21 16:47 之远 阅读(739) 评论(0) 推荐(1)

进程间通信
摘要:进程间通信一、进程间通讯的方式进程间通讯的方式有很多,常用的有共享内存(内存映射文件、共享内存DLL、剪切板等)、命名管道和匿名管道、发送消息等几种方法来直接完成,另外还可以通过socket口、配置文件和注册表等来间接实现进程间数据通讯任务。以上这几种方法各有优缺点,具体到在进程间进行大数据量数据的快速交换问题上,则可以排除使用配置文件和注册表的方法;另外,由于管道和socket套接字的使用需要有网卡的支持,因此也可以不予考虑。这样,可供选择的通讯方式只剩下共享内存和发送消息两种。二、发送消息实现进程间通讯前准备下面的例子用到一个windows api 32函数[DllImport(" 阅读全文

posted @ 2014-03-21 16:45 之远 阅读(247) 评论(0) 推荐(1)

线程间通信
摘要:多线程通信的方法主要有以下三种:1.全局变量由于同一进程下的线程之间共享数据空间。当需要有多个线程来访问一个全局变量时,通常我们会在这个全局变量前加上volatile声明,以防编译器对此变量进行优化。2.Message消息机制常用的Message通信的接口主要有两个:PostMessage和PostThreadMessage,PostMessage为线程向主窗口发送消息。而PostThreadMessage是任意两个线程之间的通信接口。PostMessage()函数原型:B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lPara 阅读全文

posted @ 2014-03-20 15:58 之远 阅读(267) 评论(0) 推荐(0)