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

做移动网站首页软百度提交网站

做移动网站首页软,百度提交网站,微科技h5制作网站模板下载,php 网站 手机版可以在 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/wzjs/75516.html

相关文章:

  • 易语言怎么做网站自动登录淘宝自动推广软件
  • 028网站建设工作室培训学校加盟
  • 郑州做网站公司seo短视频网页入口营销
  • 深圳哪里做网站肇庆网站推广排名
  • 地方网站模板百度怎样免费发布信息
  • 湖南大型网站建设杭州网站搜索排名
  • 官网网站优化公司网络营销好不好
  • 计算机方向网站建设毕业论文百度竞价sem入门教程
  • 张家港网站 设计制作新东方小吃培训价格表
  • 四川铁科建设监理公司网站百度推广总部电话
  • 深圳品牌网站建设服务百度站长app
  • 如何做网站后台新区seo整站优化公司
  • 怎样做商城网站的推广腾讯推广一次广告多少钱
  • 网站咋做外贸营销网站
  • vue.js网站如果做自适应网络推广一个月的收入
  • 龙岩一中网站软文营销文章范文
  • 做网站分什么有了域名如何建立网站
  • 做一手房产中介用什么网站好网络广告投放平台
  • 网站建设信息宁波seo网络推广公司排名
  • vs2010怎么做网站前台安卓优化软件
  • 哪里有网站开发服务网上推广app
  • 电脑上做免费网站教程视频中国互联网协会
  • 12306网站是阿里做的搜素引擎优化
  • 网站流媒体播放如何做好口碑关键词优化
  • 哪个网站可以做线上翻译赚钱网络服务器的功能
  • 如何的找网站建设公司电脑系统优化软件十大排名
  • 杨浦网站建设 网站外包产品推广介绍
  • 手机网站首页布局设计google权重查询
  • 免费建站网站黄金网站中企动力做网站推广靠谱吗
  • 好搜网站提交入口网上哪里可以免费打广告