C# 进程间通信 (Process Communication in C#)
来源:互联网 发布:淘宝网店铺装修实战 编辑:程序博客网 时间:2024/05/19 00:53
简单介绍
进程间通信就是在不同进程之间传播或交换信息。这里总结了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
消息队列实例源码下载
共享内存
利用文件与内存空间之间的映射,应用程序(包括多个进程)可以通过直接在内存中进行读写来修改文件
共享内存通信的部署方式
共享内存的通信方式
实例程序 运行顺序:
- 先启动消息服务 IMServer_Message,
- 再启动状态服务 IMServer_State,
- IMServer_Message 回车一次(创建共享内存公用名和公用线程锁,并用视图流方式写共享内存),
- IMServer_State 回车一次(获取共享内存并视图流方式写、视图访问器写入结构体类型)
- 并立刻IMServer_Message再回车一次(读取刚刚写入的信息),
- 观察IMServer_State 屏显变化并等待(线程锁) 约5s(线程锁被释放)
- 在IMServer_Message上观察屏显(显示刚刚写入共享内存的信息)
共享内存实例源码下载
- C# 进程间通信 (Process Communication in C#)
- 【IPC】Linux进程间通信(Inter Process Communication)通信方式
- SYSTEM V IPC(Inter-Process Communication,进程间通信)
- android进程间通信(IPC--Inter Process Communication)
- IPC(inter-process communication)进程间通信
- 进程间通信(IPC: inter process Communication)
- 什么事IPC(Inter-Process Communication,进程间通信)
- 进程间通信(IPC (Inter-process communication))
- [ZZ]翻译chromium开发文档之-Inter-process Communication,进程间通信
- Linux IPC(Inter-Process Communication,进程间通信)之管道学习
- 进程间通信机制(IPC-Inter Process Communication)接口简介
- Android IPC(inner process communication)进程间通信(关于面试知识点整理)
- 日积(Running)月累(ZSSURE) :IPC=Inter-Process Communication,进程间通信学习笔记(一)
- Inter-Process Communication in Qt
- 进程间通信 IPC interprocess communication
- 进程间通信 (Interprocess communication, IPC)
- IPC(InterProcess Communication)进程间通信方式
- interprocess communication (IPC) 进程间通信
- 用JS写的计时器setTimeout与setInterval
- 07 OGNL
- 安装Maven后提示找不到JDK的错误 。The Maven Integration requires that Eclipse be running in a JDK
- 黑马程序员————学习日记【19】 【基础加强3】
- Linux基础学习
- C# 进程间通信 (Process Communication in C#)
- UVa 128 Software CRC 数论(模运算)
- ZOJ 1136 Multiple(BFS)
- 第八周上机项目一(2):用类的友元函数实现运算符的重载
- 数据挖掘十大经典算法
- 汇编学习笔记《一》
- 关于Visual studio2010 和 Microsoft SQL Server 2008 Management Studio Express 的安装
- Value '0000-00-00' can not be represented as java.sql.Timestamp
- (最原始) Balanced Lineup (P3264)