Comunicación de memoria compartida de C # entre procesos

C Shared Memory Communication Between Processes

2.1 Archivos mapeados en memoria persistente

Cree un archivo mapeado en memoria con un nombre común específico basado en un archivo existente

imagen |_+_| imagen

2.2 Archivos mapeados en memoria no persistente

Archivos asignados en memoria que no están asignados a archivos existentes en el disco



imagen |_+_| imagen

2.3 DEMO completa

Ejemplo de comunicación no persistente de memoria compartida de C #, no hay ningún problema con el control de procesos y subprocesos durante la comunicación. El siguiente es el código implementado.



Inicie el servicio de mensajes IMServer_Message primero,



Reinicie el servicio de estado IMServer_State,

IMServer_Message Ingrese una vez (cree el nombre común de la memoria compartida y el bloqueo del hilo común, y escriba la memoria compartida en el modo de flujo de visualización),

Ingrese IMServer_State una vez (obtenga memoria compartida y escriba en modo de transmisión de vista, vista de acceso o tipo de estructura de escritura)



E inmediatamente ingrese IMServer_Message nuevamente (lea el mensaje que acaba de escribir),

Observe los cambios de visualización de la pantalla IMServer_State y espere (bloqueo de hilo) durante aproximadamente 5 segundos (se libera el bloqueo de hilo)

Observe la visualización de la pantalla en IMServer_Message (muestre el mensaje que acaba de escribir en la memoria compartida)

IMServer_Message.exe Código

Ver código

IMServer_State.exe Código

Ver código

2.4 Caso de intercambio de datos y sincronización de múltiples subprocesos

Hay dos ejemplos en este proyecto. El primer ejemplo está en la carpeta DEMO. Es una tecnología de sincronización multiproceso. Debe ser ejecutado por la función principal. El segundo ejemplo puede abrir directamente el proyecto y ejecutarlo para compartir datos de memoria para múltiples procesos. La tecnología de sincronización y uso compartido utiliza semáforos.

enlace de descarga: MultiProcess.rar

Bienvenido a comentar y mejorar el programa, si te ayuda, dale me gusta :).

Articulo de referencia

Comunicación de memoria compartida de C # entre procesos








Este artículo se transfiere del blog de wenglabs blog garden, el enlace original: http://www.cnblogs.com/arxive/p/7222185.html, Comuníquese con el autor original si necesita reimprimir