C#和Python共享内存技术

我这里做一个简单的示例

1.C#写入内存的方法,FileName是内存共享的名字 t是内存size

复制代码
        public static void SaveGluePLYToMemory(string FileName, string msg)
        {
            try
            { 
                long t = 100;// SetMemorySize(msg);// 100;
                //# 创建内存块,test1,其他语言利用这个内存块名字就能找到内存块。
                var mmf = MemoryMappedFile.CreateOrOpen(FileName, t, MemoryMappedFileAccess.ReadWrite);
                var viewAccessor = mmf.CreateViewAccessor(0, t);
               string s = msg;
    
                viewAccessor.WriteArray<byte>(0, System.Text.Encoding.Default.GetBytes(s), 0, s.Length); 
                // MessageBox.Show("write ok");

                //GC.Collect();
            }
            catch (System.Exception s)
            {
                MessageBox.Show(s.Message);
            }
        }

2.Python读取内存 filename分别为TireGlueing和FoamStick

复制代码
import copy
import os
import sys
import open3d as o3d;
import numpy as np
import pip;
import mmap

from multiprocessing import shared_memory

if __name__ == "__main__": 
    print("version")
    print(sys.path)
    print(o3d.__version__)
    print(sys.version)
    print(sys.executable)
    print(pip.__version__)
    print(pip.__file__)
    print(sys.getwindowsversion())

    try:
 
        MemorySize = 100

        file_name1 = 'TireGlueing'
        #print(SHMEMSIZE)
        # python读取共享内存
        shmem1 = mmap.mmap(0, MemorySize, file_name1, mmap.ACCESS_READ)
        print(f"TireGlue = {shmem1.read(MemorySize).decode('ASCII')}")
        #MemorySize = int(shmem.read(MemorySize).decode('ASCII'))
        shmem1.close() 
 
        file_name = 'FoamStick'
        print(MemorySize)
        # python读取共享内存
        shmem = mmap.mmap(0, MemorySize, file_name, mmap.ACCESS_READ)
        #print(shmem.read(MemorySize).decode('ASCII'))
        print(f"FoamStick = {shmem.read(MemorySize).decode('ASCII')}")
        shmem.close() 
 
 
    except Exception as e:
        print(e)
    print('ok')

    print("version end")
相关推荐
ghie90905 分钟前
基于MATLAB的遗传算法优化支持向量机实现
算法·支持向量机·matlab
CryptoRzz10 分钟前
欧美(美股、加拿大股票、墨西哥股票)股票数据接口文档
java·服务器·开发语言·数据库·区块链
杂货铺的小掌柜30 分钟前
apache poi excel 字体数量限制
java·excel·poi
大厂码农老A38 分钟前
你打的日志,正在拖垮你的系统:从P4小白到P7专家都是怎么打日志的?
java·前端·后端
朝新_41 分钟前
【优选算法】第一弹——双指针(上)
算法
艾菜籽1 小时前
Spring MVC入门补充2
java·spring·mvc
艾莉丝努力练剑1 小时前
【C++STL :stack && queue (一) 】STL:stack与queue全解析|深入使用(附高频算法题详解)
linux·开发语言·数据结构·c++·算法
爆更小哇1 小时前
统一功能处理
java·spring boot
程序员鱼皮1 小时前
我造了个程序员练兵场,专治技术焦虑症!
java·计算机·程序员·编程·自学
CoovallyAIHub1 小时前
ICLR 2026 惊现 SAM 3,匿名提交,实现“概念分割”,CV领域再迎颠覆性突破?
深度学习·算法·计算机视觉