C 共享内存通信示例 两个进程间通过共享内存实现通信

2021-05-19

C# 共享内存通信示例 - 两个进程间通过共享内存实现通信

项目描述

本资源文件提供了一个C#实现的共享内存通信示例,展示了如何在两个独立的进程之间通过共享内存进行通信。项目分为三个工程:proAproBShareMemLib

工程结构

  1. proAproB
    • 这两个工程是用WPF编写的模拟进程程序。proAproB 分别代表两个独立的进程,它们通过共享内存进行通信。
  2. ShareMemLib
    • 该工程将共享内存的实现代码封装成一个库(lib),方便在其他项目中复用。ShareMemLib 定义了发送者和监听者两个角色,并提供了相应的接口和方法。

实现原理

  • 发送者(Sender)
    • 发送者负责将消息写入共享内存。在实例化 ShareMemory 时,需要指定相同的 map 名称,并设置当前实例为发送者。
  • 监听者(Listener)
    • 监听者负责从共享内存中读取消息。在实例化 ShareMemory 时,同样需要指定相同的 map 名称,并设置当前实例为监听者。监听者必须实现接收消息的处理方法。

使用步骤

  1. 实例化共享内存
    • proAproB 中分别实例化 ShareMemory,并指定相同的 map 名称。
    • proA 中设置当前实例为发送者,在 proB 中设置当前实例为监听者。
  2. 发送消息
    • 发送者在 proA 中调用发送消息的方法,将消息写入共享内存。
  3. 接收消息
    • 监听者在 proB 中实现接收消息的处理方法,当监听到消息时,自动调用该方法进行处理。

注意事项

  • map 名称
    • 发送者和监听者必须使用相同的 map 名称,否则无法正确通信。
  • 监听者处理方法
    • 监听者必须实现接收消息的处理方法,否则无法正确处理接收到的消息。

通过以上步骤,proAproB 两个进程可以成功通过共享内存实现通信。

下载链接

C共享内存通信示例-两个进程间通过共享内存实现通信