C# 进程间通信 (Process Communication in C#)
2013-12-04 08:12
316 查看
简单介绍
进程间通信就是在不同进程之间传播或交换信息。这里总结了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上观察屏显(显示刚刚写入共享内存的信息)
共享内存实例源码下载
相关文章推荐
- 【IPC】Linux进程间通信(Inter Process Communication)通信方式
- Prevent a Process from Being Created Again in VC or C#
- SOCKET Communication writen in C# (5) Socket 异步操作 模式
- 3——Building Microservices: Inter-Process Communication in a Microservices Architecture
- Inter-Process Communication in Qt
- SOCKET Communication writen in C# (3) TcpListener 和TcpClient 异步非阻塞
- Android IPC(inner process communication)进程间通信(关于面试知识点整理)
- SOCKET Communication writen in C# (7) Socket 高性能异步操作 模式
- SOCKET Communication writen in C# (6) Socket 状态行为
- SOCKET Communication writen in C# (4) Socket 同步模式,异步模式操作
- Close Excel process in C#
- Client-Side Reporting with Visual Studio in C#
- C# 等待Process结束再执行主线程
- TRANSACTION_MODE,LOCK_FLAG,PROCESS_FLAG,TRANSACTION_STATUS in MTI or MMTT
- 书评:Pro .NET 4 Parallel Programming in C#
- Part 32 Abstract classes in c#
- Implementing the Singleton Pattern in C#
- C# 调用其它程序 Process.Start 方法说明
- FTP Client library in C#
- internal class in C#