当前位置: 首页 > news >正文

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 mmapfrom multiprocessing import shared_memoryif __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 = 100file_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")

相关文章:

  • Webpack 打包后文件过大,如何优化?
  • 无人机在抗洪方面的作用!
  • k8s搭建双主的mysql8集群---无坑
  • 【DRF】 类视图
  • 时序必读论文15|TimeXer:通过外部变量增强Transformer在时间序列预测中的能力
  • 【hot100-java】【单词搜索】
  • Qt界面优化——绘图API
  • 知识图谱入门——1:基本概念、为什么要用?核心步骤、常用工具与技术、应用场景
  • Spring 概述与环境搭建
  • 【AI知识点】度量学习(Metric Learning)
  • CommandLineRunner 和 ApplicationRunner
  • OceanBase技术解析: 执行器中的自适应技术
  • 您的计算机已被Lockbit3.0勒索病毒感染?恢复您的数据的方法在这里!
  • Android常用C++特性之std::abs
  • STM32 map 文件浅析
  • Google 是如何开发 Web 框架的
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • classpath对获取配置文件的影响
  • C语言笔记(第一章:C语言编程)
  • hadoop集群管理系统搭建规划说明
  • JAVA SE 6 GC调优笔记
  • JavaScript中的对象个人分享
  • MobX
  • MySQL主从复制读写分离及奇怪的问题
  • SpiderData 2019年2月13日 DApp数据排行榜
  • SQLServer之创建数据库快照
  • Webpack 4 学习01(基础配置)
  • 阿里研究院入选中国企业智库系统影响力榜
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 从伪并行的 Python 多线程说起
  • 仿天猫超市收藏抛物线动画工具库
  • 关于extract.autodesk.io的一些说明
  • 技术胖1-4季视频复习— (看视频笔记)
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 小程序 setData 学问多
  • 一份游戏开发学习路线
  • 云大使推广中的常见热门问题
  • 怎样选择前端框架
  • Linux权限管理(week1_day5)--技术流ken
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ‌移动管家手机智能控制汽车系统
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #includecmath
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (AngularJS)Angular 控制器之间通信初探
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (排序详解之 堆排序)