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

南山区公司网站制作外贸seo外贸推广外贸网站建设外贸网站建设

南山区公司网站制作,外贸seo外贸推广外贸网站建设外贸网站建设,快递业务服务网站建设的需求分析,网站建设课程设计论文可以在 Windows 和 Linux 上运行,利用了 .NET Core 的 System.IO.MemoryMappedFiles 库。这个类实现了共享内存的创建、打开、读取和写入功能。以下是对代码的一些分析和建议改进。 代码分析 初始化与打开共享内存: Init 方法用于创建新的共享内存段。OpenMem 方法…

可以在 Windows 和 Linux 上运行,利用了 .NET Core 的 System.IO.MemoryMappedFiles 库。这个类实现了共享内存的创建、打开、读取和写入功能。以下是对代码的一些分析和建议改进。

代码分析

  1. 初始化与打开共享内存:

    • Init 方法用于创建新的共享内存段。
    • OpenMem 方法用于打开已存在的共享内存段。
    • 这两个方法都处理了异常并返回状态码,非常适合用于错误处理。
  2. 关闭共享内存:

    • Close 方法确保释放资源,避免内存泄漏。
  3. 读写数据:

    • Read 和 Write 方法提供了数据读写的功能,支持指定偏移量和大小。
  4. 状态管理:

    • _isInitialized 和 _isOpened 标志用于跟踪共享内存的状态。
using System;
using System.IO.MemoryMappedFiles;
using System.Runtime.InteropServices;namespace MemoryDB
{class Class_ShareMemory{private MemoryMappedFile _memoryMappedFile;private MemoryMappedViewAccessor _viewAccessor;private long _memSize;private string _name;private bool _isInitialized;private bool _isOpened;public Class_ShareMem(){_isInitialized = false;_isOpened = false;}/// <summary>/// 初始化共享内存/// </summary>/// <param name="name">共享内存名称</param>/// <param name="size">共享内存大小</param>/// <returns></returns>public int Init(string name, long size){if (size <= 0) size = 0x00800000; // Default size_memSize = size;_name = name;try{// 根据操作系统设置共享内存名称string fullName = GetFullMemoryMappedFileName(_name);_memoryMappedFile = MemoryMappedFile.CreateNew(fullName, _memSize);_viewAccessor = _memoryMappedFile.CreateViewAccessor();_isInitialized = true;}catch (Exception ex){Console.WriteLine($"创建共享内存失败: {ex.Message}");return 2; // 创建失败}return 0; // 创建成功}/// <summary>/// 打开共享内存/// </summary>public int OpenMem(string name, long size){if (size <= 0) size = 0x00800000; // Default size_memSize = size;_name = name;try{// 根据操作系统设置共享内存名称string fullName = GetFullMemoryMappedFileName(_name);_memoryMappedFile = MemoryMappedFile.OpenExisting(fullName);_viewAccessor = _memoryMappedFile.CreateViewAccessor();_isOpened = true;}catch (Exception ex){Console.WriteLine($"打开共享内存失败: {ex.Message}");return 1; // 打开失败}return 0; // 打开成功}/// <summary>/// 关闭共享内存/// </summary>public void Close(){_viewAccessor?.Dispose();_memoryMappedFile?.Dispose();_isInitialized = false;_isOpened = false;}/// <summary>/// 读数据/// </summary>/// <param name="data">数据</param>/// <param name="offset">起始地址</param>/// <param name="size">个数</param>/// <returns></returns>public int Read(ref byte[] data, long offset, int size){if (offset + size > _memSize) return 2; // 超出数据区if (_isInitialized || _isOpened){_viewAccessor.ReadArray(offset, data, 0, size);}else{return 1; // 共享内存未初始化}return 0; // 读成功}/// <summary>/// 写数据/// </summary>/// <param name="data">数据</param>/// <param name="offset">起始地址</param>/// <param name="size">个数</param>/// <returns></returns>public int Write(byte[] data, long offset, int size){if (offset + size > _memSize) return 2; // 超出数据区if (_isInitialized || _isOpened){_viewAccessor.WriteArray(offset, data, 0, size);}else{return 1; // 共享内存未初始化}return 0; // 写成功}/// <summary>/// 根据操作系统获取完整的共享内存名称/// </summary>/// <param name="name">共享内存名称</param>/// <returns>完整的共享内存名称</returns>private string GetFullMemoryMappedFileName(string name){// 在 Windows 中使用 Global 前缀,在 Linux 中不使用if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)){return $"Global\\{name}";}else{return name; // Linux 上直接使用名称}}}
}

http://www.dtcms.com/a/616154.html

相关文章:

  • 海外 酒店 网站建设网站制作网站建设项目规划书
  • 制作网站注册页面吴中seo网站优化软件
  • 【C++】2:cin和cout的介绍和使用,函数的缺省参数
  • 手机上如何制作网站仿照别人的网站做违法吗
  • 网站被host重定向是什么意思织梦网站程序安装教程
  • dw简述网站开发流程网站制作易捷网络
  • 现在哪个网站做电商好中国网是什么级别的媒体
  • 婚纱摄影 网站关键词 优化公司邮箱签名模板
  • 门户网站建站多少钱wordpress插件支付宝积分
  • 江门市网站建设网站 预算
  • 深圳外贸公司网站建设公司排名韩国女排出线
  • 装饰网站的业务员都是怎么做的怎么增加网站的关键词库
  • ps个人网站制作流程做商城网站需要备案什么域名
  • 浙江网站建设推广公司十大排行wordpress自动水印代码
  • 找深圳网站建设广告设计经典108例
  • 张家港做网站排名常用的网站语言
  • 做行业门户网站注意什么网站建设下坡路
  • 威海做网站的哪家好吉林网站建设制作
  • 网站维护的具体问题在网上怎么赚钱快
  • 建设网站个人银行网站运营专员做六休一
  • 电子上网站建设与维护旅游网站开发网站设计报告书
  • 静态网站开发与实施的论文公司网站域名是什么
  • 大美工设计网站官网推荐wordpress主题xiu
  • 电子商务网站的建设与规划论文洛阳专业网站设计开发制作建站公司
  • 南充市建设局官方网站万和城网站
  • 公司网站制作与维护新建网站怎样绑定域名
  • 家庭路由器建个人网站网站建设如何商谈
  • 做电子商务网站注册哪一类商标做网站过程用文件
  • 牙科医院网站设计怎么做网站打不开怎么做
  • 面向服务的关系建设网站wordpress导航菜单加小图标