
C#
文章平均质量分 56
CnLg.NJ
这个作者很懒,什么都没留下…
展开
-
浅谈C#之内存映射
提供了一种高效的内存映射文件机制,允许将文件或内存区域直接映射到进程的地址空间,从而实现快速的文件读写和进程间通信。:将文件内容映射到虚拟内存中,程序通过指针直接访问,避免了传统I/O的缓冲开销。:.NET Core及以上版本支持Windows/Linux/macOS。:适合处理大文件、随机访问频繁的场景,支持进程间共享数据。:创建时需指定足够的大小,超出将引发异常。:提供随机访问的视图(类似指针操作)。:提供流式访问的视图(类似。需要低延迟的随机文件访问。:表示内存映射文件对象。原创 2025-03-27 10:30:00 · 484 阅读 · 0 评论 -
C# 实现串口通信
在C#中实现串口通信,可以使用类。这个类提供了串口通信的基本功能,包括打开和关闭串口、发送和接收数据等。原创 2025-01-02 10:39:33 · 641 阅读 · 0 评论 -
浅谈C#库之Memcached
Memcached是一个开源的分布式内存缓存系统,由的开发,主要用于动态Web应用以减少数据库负载,提高访问速度和性能。Memcached通过将数据存储在内存中,使用高效的哈希算法进行数据存取,提供极高的读写性能。原创 2024-12-12 08:59:15 · 866 阅读 · 0 评论 -
浅谈C#库之MiniExcel
是一个简单、高效的.NET库,专门用于处理Excel文件的读写和模板填充操作,旨在避免内存溢出(OOM)问题。它通过使用流(Stream)的方式进行底层算法设计,能够显著减少内存占用,通常可以将原本需要1000多MB的内存占用降低到几MB,从而有效避免内存不足的情况。原创 2024-12-12 08:54:07 · 2053 阅读 · 0 评论 -
浅谈C#库之Serilog
Serilog 是一个跨平台的结构化日志库,用于 .NET 应用程序。它支持将日志数据输出成多种格式,包括 JSON,便于进行搜索和分析。Serilog 提供了丰富的配置选项,允许开发者将日志输出到多种目标(Sinks),如控制台、文件、数据库等。原创 2024-12-10 09:05:05 · 1308 阅读 · 0 评论 -
浅谈C#库之Newtonsoft.Json
你可以通过实现// 输出:{"full_name":"John"}// 输出:John自定义return;elseset;原创 2024-12-10 08:59:39 · 2101 阅读 · 0 评论 -
浅谈C#库之DevExpress
DevExpress是一个功能强大、界面美观的UI组件库,广泛应用于桌面应用程序和Web应用程序的开发中。它提供了丰富的控件和工具,帮助开发人员快速构建现代化的用户界面。DevExpress控件库以其功能丰富、应用简便、界面华丽以及方便定制而著称。原创 2024-11-29 10:02:59 · 1645 阅读 · 0 评论 -
浅谈C#库之Memcached
Memcached是一个开源的高性能分布式内存缓存系统,它通过将数据存储在内存中来加速动态Web应用。1、高性能:Memcached使用内存进行数据存储,访问速度极快。2、分布式:支持多节点分布式部署,具备良好的扩展性。3、简单易用:API简单直观,易于集成到各种编程语言中,包括C#。4、轻量级:占用资源少,安装配置简单。原创 2024-11-29 09:57:33 · 630 阅读 · 0 评论 -
浅谈C#之多线程流式适配器
在C#中实现多线程流式适配器,通常涉及到处理并发数据流和确保线程安全。在某些情况下,你可能需要自定义流式适配器来处理特定的协议或数据格式。这通常涉及到解析数据头和数据体,以及处理数据的顺序和完整性。// 记录初始游标位置// 填充header// 回退游标else// 解析数据。原创 2024-11-14 08:48:43 · 1082 阅读 · 0 评论 -
浅谈C#之单线程流式适配器
在C#中,单线程流式适配器通常用于处理流式数据,如网络通信或文件操作中的连续数据流。这些数据流可能是有序的,并且数据包之间可能会发生粘连,即没有明确的分界线,导致粘包和半包问题。解决这些问题的关键在于识别数据包的标识和顺序。在更复杂的应用中,可能需要自定义流式单线程适配器来处理特定的协议或数据格式。这通常涉及到解析数据头和数据体,以及处理数据的顺序和完整性。// 记录初始游标位置,防止本次无法解析时,回退游标。// 此操作实际上有两个作用,// 1.填充header。原创 2024-11-14 08:46:29 · 769 阅读 · 0 评论 -
浅谈C#之内存管理
在C#中,内存管理主要依赖于垃圾回收器(Garbage Collector,简称GC)。垃圾回收器会自动管理内存的分配和释放,但是有时候我们可能需要手动干预内存的释放。原创 2024-11-13 08:56:29 · 568 阅读 · 0 评论 -
浅谈C#处理XML文件
XML),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从标准通用标记语言(SGML)中简化修改出来的。它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。原创 2024-11-12 09:15:48 · 521 阅读 · 0 评论 -
浅谈C#之文件流
文件流是指用于读取和写入文件的流(Stream)。.NET框架提供了多种流类,用于处理不同类型的I/O操作。原创 2024-11-11 09:07:53 · 299 阅读 · 0 评论 -
C# 注册COM组件
1、创建COM组件:首先,你需要创建一个COM组件。这通常意味着创建一个类库项目,并在其中定义你的COM对象。2、设置项目属性:3、使用ComVisible属性:4、定义接口和类:5、生成项目:6、使用RegAsm工具:7、验证注册:8、调用COM组件:原创 2024-10-31 09:10:10 · 1232 阅读 · 0 评论 -
浅谈C#之TuochSocket
TouchSocket 是一个为 .Net(包括 C#、VB.Net、F#)设计的整合性、超轻量级的网络通信框架,它包含了 tcp、udp、ssl、http、websocket、rpc、jsonrpc、webapi、xmlrpc 等一系列的通信模块。它能够一键式解决 TCP 黏分包问题,udp 大数据包分片组合问题等,使用协议模板可以快速实现「固定包头」、「固定长度」、「区间字符」等一系列的数据报文解析。原创 2024-10-30 09:09:19 · 975 阅读 · 0 评论 -
.NET代码打包加密工具
下载地址:原创 2024-10-29 13:15:16 · 115 阅读 · 0 评论 -
浅谈C#之抽象类、抽象方法
在C#中,抽象类和抽象方法是面向对象编程中的重要概念,它们提供了一种方式来定义一个类的基本框架,但不完全实现它。这允许其他类继承这个框架,并提供具体的实现细节。原创 2024-10-18 08:44:30 · 499 阅读 · 0 评论 -
浅谈C#之SetSocketOption用法
在 C# 中,是一个用于设置套接字(Socket)选项的方法。这个方法定义在类中,允许你配置底层套接字的行为。这些选项可以控制套接字的各种特性,例如超时、缓冲区大小、协议特定的选项等。原创 2024-10-09 15:11:16 · 952 阅读 · 0 评论 -
浅谈C#之内存缓存
MemoryCache是一个基于内存的缓存服务,它是System.Runtime.Caching命名空间的一部分。它允许开发人员将频繁使用的数据或昂贵的计算结果存储在内存中,以便快速和有效地访问。MemoryCache使用键值对来存储数据,数据在被添加到缓存时会附带一个过期时间。当缓存项目到达其过期时间或者系统在资源压力下时(例如,可用的物理内存太低),该项目会从缓存中删除。原创 2024-09-30 08:42:29 · 808 阅读 · 0 评论 -
浅谈C#之AutoResetEvent和ManualResetEvent
和都是同步原语,它们用于线程之间的协调和通信。它们都是从类派生的,但它们在重置事件状态的行为上有所不同。原创 2024-09-18 08:46:47 · 576 阅读 · 0 评论 -
浅谈C#之SynchronizationContext
是一个抽象类,它提供了一种机制,允许代码与创建它的线程同步。这在UI编程中非常有用,比如在Windows Forms或WPF应用程序中,你可能需要确保某些操作在UI线程上执行,以避免跨线程操作导致的问题。原创 2024-09-18 08:42:52 · 793 阅读 · 0 评论 -
浅谈C#之虚函数和重写
虚函数(Virtual Function)和重写(Override)是面向对象编程中多态性(Polymorphism)的实现方式之一。它们允许子类改变从基类继承来的行为。原创 2024-09-11 08:56:43 · 743 阅读 · 0 评论 -
浅谈C#之抽象类和抽象函数
抽象类和抽象方法是用来表示那些不完整、不能实例化的概念,通常用于定义一个接口或规范,让继承它的子类去实现具体的功能。抽象类不能被实例化。抽象类可以包含抽象方法和非抽象方法。抽象类可以包含字段、构造函数、属性、索引器、事件等。抽象类用关键字abstract来声明。抽象方法是一种没有实现的方法,它只有声明没有方法体。抽象方法用关键字abstract来声明。抽象方法必须在抽象类中声明。继承抽象类的非抽象子类必须实现其所有的抽象方法,除非子类本身也被声明为抽象类。原创 2024-09-11 08:54:15 · 657 阅读 · 0 评论 -
浅谈C#之线程锁
锁是一种同步机制,用于控制多个线程对共享资源的访问。当一个线程获得了锁时,其他线程将被阻塞,直到该线程释放了锁。在并发编程中,多个线程同时访问共享资源可能导致数据竞争和不确定的行为。锁可以确保在任意时刻只有一个线程可以访问共享资源,从而避免竞态条件和数据不一致性问题。原创 2024-09-10 08:53:18 · 1023 阅读 · 0 评论 -
浅谈C#之线程创建和管理
线程是一种并发执行的机制,允许程序同时执行多个任务。线程的使用使得我们能够利用计算机的多核处理器,实现程序的并行执行,提高系统的性能和响应能力。本文将详细介绍C#中线程的定义和使用方法,涵盖线程的创建、启动、同步和管理等方面。线程管理是一个重要的概念,因为多线程编程可以帮助你提高应用程序的性能,特别是在执行耗时的操作时。原创 2024-09-10 08:50:10 · 1107 阅读 · 0 评论 -
浅谈C#之进程
处理进程通常涉及到启动、监控和管理操作系统级别的进程。C#提供了命名空间,其中包含用于创建和管理进程的类。原创 2024-09-09 08:45:24 · 827 阅读 · 0 评论 -
浅谈C#之线程锁
线程锁通常指的是lock关键字,它用于确保当一个线程位于代码的临界区时,其他线程不进入该区。lock通常用于保护共享资源,避免竞争条件。原创 2024-09-09 08:41:29 · 1227 阅读 · 0 评论 -
浅谈C#之ConcurrentQueue
是一个线程安全的队列,它允许多个线程同时对队列进行操作而不会相互干扰。它是命名空间下的一个类,提供了基本的队列操作,如Enqueue(入队)、TryDequeue(尝试出队)、TryPeek(尝试查看队首元素)等,并且是线程安全的。原创 2024-09-06 08:49:26 · 2281 阅读 · 0 评论 -
浅谈C#之任务调度TaskScheduler
是一个抽象类,用于控制任务的执行方式,特别是它们如何被安排到线程池中的线程上执行。负责将Task对象排队并决定何时、以何种方式执行这些任务。首先,我们需要创建一个继承自的类,并实现必要的方法。Task task;else});现在我们可以使用这个自定义的来调度任务。i < 10;i++)原创 2024-09-06 08:45:46 · 2164 阅读 · 0 评论 -
浅谈C#之232通讯
C#中实现232通讯,通常指的是通过串行通信接口(如RS232或RS485)与串行设备进行数据交换。以下是一个使用System.IO.Ports命名空间中的SerialPort类创建的基本示例。原创 2024-09-05 10:20:19 · 1496 阅读 · 0 评论 -
浅谈C#之485通讯
C#中实现485通讯,通常指的是使用RS-485串行通信接口。RS-485是一种半双工通信标准,常用于工业环境中的设备之间的通信。原创 2024-09-05 10:16:28 · 1839 阅读 · 0 评论 -
浅谈C#之ConcurrentDictionary
是 .NET Framework 中提供的一个线程安全的字典类,它允许多个线程同时对字典进行读写操作而不需要额外的同步措施。这个类位于命名空间中。原创 2024-09-04 10:42:31 · 3740 阅读 · 0 评论 -
浅谈C# MQTT
可以使用MQTTnet这个开源库,它提供了MQTT客户端和服务器端的实现,并且支持MQTT协议的多个版本。以下是使用MQTTnet。原创 2024-09-03 09:03:35 · 1146 阅读 · 0 评论 -
浅谈C# 虚函数和重写
虚函数(Virtual Function)和重写(Override)是面向对象编程中多态性的重要概念。它们允许子类改变继承自父类的行为。原创 2024-09-02 14:27:37 · 866 阅读 · 0 评论 -
浅谈C# 委托与事件
委托(Delegate)是一种特殊的类型,它定义了方法的类型,使得可以将方法作为参数传递。事件(Event)是基于委托的一种特殊用途,用于实现事件驱动的编程模型。原创 2024-09-02 14:24:52 · 935 阅读 · 0 评论 -
浅谈C# 抽象类和抽象方法
抽象类和抽象方法是面向对象编程中实现代码重用和多态性的重要工具。抽象类是一种不能被实例化的类,它通常包含至少一个抽象方法。抽象方法是一种没有实现体的方法,它必须在派生类中被重写和实现。原创 2024-09-01 15:08:06 · 675 阅读 · 0 评论 -
浅谈C# 虚函数
虚函数是一种在基类中声明并在派生类中重写的方法。通过使用关键字virtual,可以定义虚函数。派生类可以根据需要重写虚函数,以提供不同的实现。虚函数的主要目的是实现多态性。在程序运行时,通过基类的引用或指针调用虚函数时,将根据实际对象类型执行相应的派生类方法。在C#中,你可以通过使用virtual关键字来定义一个虚函数。这意味着该方法可以在派生类中被重写。原创 2024-09-01 15:05:53 · 916 阅读 · 0 评论 -
浅谈C#事件
事件是一种特殊的多播委托,用于实现发布-订阅模式。事件允许对象在发生特定情况时通知其他对象。事件的发布者(也称为事件源)定义事件,并在适当的时机触发事件;事件的订阅者(也称为事件处理程序)订阅事件,并在事件被触发时接收通知。MyEvent?set;在这个示例中,是一个自定义的事件参数类,它允许事件处理程序接收额外的信息。事件的发布者在触发事件时创建并传递这个自定义事件参数的实例。原创 2024-08-31 16:17:58 · 944 阅读 · 0 评论 -
浅谈C#委托
委托是一种引用类型,它表示对方法的引用,即委托就是一种用来指向一个方法的引用类型变量。委托(Delegate)是一种特殊的类型,它定义了方法的类型,使得可以将方法作为参数传递,或者将其赋值给变量。委托是实现事件和回调方法的基础。原创 2024-08-31 16:15:32 · 763 阅读 · 0 评论 -
浅谈C# RabbitMQ
RabbitMQ——Rabbit Message Queue的简写,但不能仅仅理解其为消息队列,消息代理更合适。RabbitMQ 是一个由 Erlang 语言开发的AMQP(高级消息队列协议)的开源实现,其内部结构如下:RabbitMQ作为一个消息代理,主要和消息打交道,负责接收并转发消息。RabbitMQ提供了可靠的消息机制、跟踪机制和灵活的消息路由,支持消息集群和分布式部署。适用于排队算法、秒杀活动、消息分发、异步处理、数据同步、处理耗时任务、CQRS等应用场景。原创 2024-08-25 16:13:08 · 625 阅读 · 0 评论