C#进程间使用同步EVENT事件
来源:互联网 发布:网络视频产业发展趋势 编辑:程序博客网 时间:2024/05/19 01:06
在C++中,对跨进程使用各种同步的方法,用得还是比较多的,但在C#中跨进程编程就比较少了,更多的使用了其它一些机制,特别是WCF做为一种分布式编程的技术逐渐被推广后,也越来越方便了。
原来在线程间使用事件,大多使用这两个AutoResetEvent和ManualResetEvent,但在跨进程中使用就不可以了。这时候就得祭出他们两个的父类EventWaitHandle,大家看一下他的重载构造函数:
EventWaitHandle(Boolean, EventResetMode)
EventWaitHandle(Boolean, EventResetMode, String)
EventWaitHandle(Boolean, EventResetMode, String, Boolean )
EventWaitHandle(Boolean, EventResetMode, String, Boolean , EventWaitHandleSecurity)
详细的说明大家去看MSDN,这里不再抄一遍了。
这里说明的是上面的构造函数中的String的参数指的就是C++里的事件的名称,或者你可以叫有名事件,(互斥体也是类似)这样,在一个进程中创建一个事件时,就可以在另外一个进程中通下面这个函数,利用这个名字参数打开一个这个事件的句柄并进行控制,当然,在MSDN中也说明了,这个函数每次打开后返回的句柄未必是同一个。
EventWaitHandle.OpenExisting("XXX");
举一个小例子:
A进程:
static EventWaitHandle evh = new EventWaitHandle(false,0,"test");private void button2_Click(object sender, EventArgs e){ evh.Set();}
B进程:
static EventWaitHandle evh = EventWaitHandle.OpenExisting("test");static void Main(string[] args){ bool t = evh.WaitOne(); if (t) { return; }}
1 0
- C#进程间使用同步EVENT事件
- 进程同步之事件(Event)
- 进程间使用管道通信
- Windows进程同步之事件内核对象(Event)
- C#中在窗体间使用消息来处理相关联的事件
- 多线程--同步(事件Event)
- 线程同步--事件Event
- 16.1 进程间使用管道通信
- 16.2 进程间使用D-Bus通信
- 多进程间使用消息队列通信
- 进程间使用Broadcast通信总结
- 进程间使用内存映射文件通信
- linux 进程间使用unix socket通信
- C#事件(event)解析
- C#事件(event)解析
- C#事件(event)解析
- C#事件(event)解析
- C#事件(event)解析
- android与js交互的方式(包括三种)
- UIScrollView 的基本使用
- 梯度训练算法
- 无刷直流电机的驱动的基本原理
- 复杂链表的复制
- C#进程间使用同步EVENT事件
- iOS通知观察者的添加和移除
- TextInputLayout的学习和应用
- java.net.BindException: Address already in use解决方法
- 尝试新思路——CError的另一种实现方式
- Ubuntu16.04安装jdk1.8(tar.gz方式)
- React Router 使用教程
- java高级程序设计笔记(8章 BOM)
- 【Android - 基础】之Dialog分类及使用