简单介绍

进程间通信就是在不同进程之间传播或交换信息。这里总结了Windows系统中的进程间通信的一些方式,用C#实现了出来。

C# 进程间通信的多种方式

  • Clipboard
  • COM
  • File Mapping (Sharing memory)
  • Mailslots
  • Pipes
  • RPC
  • Windows Sockets
这里只简要介绍其中的三种,并附上源码,源码还是非常有用的,比文字更有说服力。

管道 (Pipes)

管道的分类:
  • 匿名管道 -  半双工通信, 它常用于父子进程之间的通信
  • 命名管道 -  进程之间做双工通信

跨网络在不同机器之间进行通信

管道两端的进程可以分别对管道进行读和写的操作。
管道实例源码下载

消息队列

MSMQ (MicroSoft Message Queue)
-    不同进程间传输消息的一种方式,是异步传输模式,相互通信的应用程序可以分布于同一台机器上,也可以分布于相连的网络中。
使用MicroSoft Message Queue
-    准备使用 MicroSoft Message Queue

-   运行时管理 MicroSoft Message Queue 

消息队列实例源码下载

共享内存

利用文件与内存空间之间的映射,应用程序(包括多个进程)可以通过直接在内存中进行读写来修改文件
共享内存通信的部署方式
共享内存的通信方式
实例程序 运行顺序:

  1. 先启动消息服务 IMServer_Message,
  2. 再启动状态服务 IMServer_State,
  3. IMServer_Message 回车一次(创建共享内存公用名和公用线程锁,并用视图流方式写共享内存),
  4. IMServer_State 回车一次(获取共享内存并视图流方式写、视图访问器写入结构体类型)
  5. 并立刻IMServer_Message再回车一次(读取刚刚写入的信息),
  6. 观察IMServer_State 屏显变化并等待(线程锁) 约5s(线程锁被释放)
  7. 在IMServer_Message上观察屏显(显示刚刚写入共享内存的信息)
共享内存实例源码下载

C# 进程间通信 (Process Communication in C#)相关推荐

  1. linux 之进程间通信-------------InterProcess Communication

    进程间通信至少可以通过传送打开文件来实现,不同的进程通过一个或多个文件来传递信息,事实上,在很多应用系统里,都使用了这种方法.但一般说来,进程间 通信(IPC:InterProcess Communi ...

  2. 进程间基于共享存储区的通信_IPC(进程间通讯):inter process communication

    管道 (1)管道是半双工的,数据只能向一个方向流动:需要双方通信时,需要建立起两个管道: (2)只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程): (3)**单独构成一种独立的文件系统:**管道 ...

  3. android:使用Messenger进行进程间通信(一)

    Messenger简介 Messenger和AIDL是实现进程间通信(interprocess communication)的两种方式. 实际上,Messenger的实现其实是对AIDL的封装. Me ...

  4. Android 进程间通信 实例分析

    Android Service是分为两种: 本地服务(Local Service): 同一个apk内被调用 远程服务(Remote Service):被另一个apk调用   远程服务需要借助AIDL来 ...

  5. 进程间通信--IPC

    前言: 进程间通信(Inter-Process Communication),简称IPC,就是指进程与进程之间进行通信.一般来说,一个app只有一个进程,但是可能会有多个线程,所以我们用得比较多的是多 ...

  6. Qt Remote Object(QtRO)实现进程间通信

    概述 Qt Remote Object简称QtRO,这是Qt5.9以后官方推出来的新模块,专门用于进程间通信(IPC).在这之前,要实现进程间通信有多种方式,这里就不做介绍了,而Qt官方推出的这个新模 ...

  7. Linux 进程间通信-IPC 机制

    Linux 平台上在 Kernel 协调下完成进程之间的相互通信,有多种进程间通信 -- Inter Process Communication(IPC)方式. 1. IPC 分类 按照功能用途来看有 ...

  8. 进程间通信: 进程间通信都有哪些方法?

    在上一讲中,我们提到过,凡是面试官问"什么情况下"的时候,面试官实际想听的是你经过理解,整理得到的认知.回答应该是概括的.简要的.而不是真的去列举每一种 case. 另外,面试官考 ...

  9. [进程通信] 进程间通信 之 管道

    所谓"进程间通信(IPC,inter-process communication)",按照其目的讲就是让进程之间能够"共享数据","传输数据" ...

最新文章

  1. TM:宿主-细菌界面的MicroRNA:宿主防御或细菌攻击
  2. Springboot 简单的定时器
  3. HTTP 错误 500.21 - Internal Server Error(转)
  4. Vue解析--如何应对面试官提问
  5. mysql锁表问题的解决方法_MYSQL锁表问题的解决方法
  6. 用python设计学生管理系统_Python实现GUI学生信息管理系统
  7. 存储池与存储卷,使用virt-install创建虚拟机
  8. 一个不限制插值个数和上采样倍数的视频增强方法
  9. 京东宣布全员涨薪两个月! 打工人流下了羡慕的泪水
  10. 实现较低的计时器粒度以重传TCP(RTO):时间轮算法如何减少开销
  11. c语言编程获取摄像头图像,OpenCV 获取摄像头图像数据并显示
  12. win7系统下VS2015中CUDA8.0调试程序问题
  13. 创业记-我的技术选型
  14. 睡眠者效应(Sleeper Effect):当下被拒绝,但其实已经
  15. php mysql注册登录失败_php用户注册登录,不使用mysql
  16. C++--第2课 - C++中的引用
  17. 导入JasperReports坐标时无法下载com.lowagie:itext:jar:2.1.7.js6
  18. Java开发常见英文单词(带音标翻译)
  19. 利用python进行假设假设检验
  20. ssh服务器配置以及密匙登录

热门文章

  1. 再演千团大战,小程序服务商路在何方?
  2. redis之二十八 -- Redis实战:Redis 主从同步
  3. 【C语言】操作符总结(一)
  4. 计算输入日期的前一天
  5. CTFd平台二次开(jiao)发(shi)
  6. iOS之程序崩溃解决
  7. 计算机中的cnc代表什么意思,cnc加工是什么意思 什么是cnc加工中心
  8. 表视图底部被遮挡显示不全?
  9. hadoop组件之hbase安装配置
  10. Python时间函数汇总