- 博客(17)
- 资源 (92)
- 收藏
- 关注
原创 C#专用集合类StringCollection与StringDictionary
C#专用集合类命名空间:System.Collections.SpecializedSystem.Collections.Specialized命名空间包含专用的和强类型的集合。StringCollection和StringDictionary,两者都包含独占字符串的值。StringCollection 我们可以认为是类似于 List<String> 或者string[] 数组。StringDictionary 我们可以认为是类似于 Dictionary<stri...
2020-10-28 17:35:29 2311
原创 线程同步ManualResetEvent(手动复位事件)的阻塞 继续执行
ManualResetEvent 类命名空间:System.Threading表示线程同步事件,收到信号时,必须手动重置该事件。此类不能被继承(密封类sealed)。关键点:WaitOne():用于阻塞,触发WaitOne时,下面的代码将阻塞执行,就是等待执行,重载方法 可设置超时时间,默认-1(无限等待)Set():解除阻塞,WaitOne下面的将解除阻塞,继续执行。方法WaitOne() 阻止当前线程,直到当前WaitHandle收到信号。 (继...
2020-10-28 14:12:36 829
原创 System.Threading.Barrier多线程屏障类,分界线
Barrier:屏障,障碍,分界线使多个任务能够采用并行方式依据某种算法在多个阶段中协同工作。多个线程各自执行完毕,合并一起后再往下执行其他事件在Barrier之前,若干个thread各自执行,然后到了Barrier的时候停下,等待规定数目的所有的其他线程到达这个Barrier,之后再一起通过这个Barrier各自干自己的事情。比如:大家从各自的工位到会议室集合,待人数都到齐(Barrier)之后,开始会议并讨论问题。Task.WaitAll(Task1,Task2,Task3,....)
2020-10-26 22:36:18 268
原创 X509Certificate证书读取本地相应指纹证书
X509Certificate证书所在的命名空间System.Security.Cryptography.X509Certificates
2020-10-24 17:23:14 2523
原创 测试复制数组:Array.Copy与Buffer.BlockCopy的性能(运行时间)
数组元素复制可以使用两个方法: 1.Array.Copy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length) 2.Buffer.BlockCopy(Array src, int srcOffset, Array dst, int dstOffset, int count)下面测试两者的性能新建控制台应用程序CopyArrayPerformance...
2020-10-22 16:39:58 867
原创 SuperSocket服务端源代码逻辑解析
SuperSocket服务端默认是以 "\r\n" (回车换行0x0D0A)作为终止符(TerminatorReceiveFilter),接收默认最多处理1024个字节【DefaultMaxRequestLength=1024】。如果一次发送超过1024的字节【发送数据中无 "\r\n"】,将抛出ProtocolError异常,并将非法的客户端连接关闭。接收的结果StringRequestInfo对象由Key和Body通过空格字符拼接而成。如果Body为空,则接收的实际结果就是 Key。如果Bo
2020-10-21 20:46:58 1012
原创 C#线程安全集合类说明(5):ConcurrentStack<T>栈
线程安全的集合所在的命名空间 using System.Collections.Concurrent;Concurrent意思是并发的,并行的。反义是sequential(顺序的),线程安全的意思就是多线程中的同步锁(Lock)
2020-10-17 17:32:50 925
原创 C#线程安全集合类说明(4):ConcurrentQueue<T>队列
线程安全的集合所在的命名空间 using System.Collections.Concurrent;Concurrent意思是并发的,并行的。反义是sequential(顺序的),线程安全的意思就是多线程中的同步锁(Lock)
2020-10-17 17:01:50 815
原创 C#线程安全集合类说明(3): ConcurrentDictionary<TKey,TValue>字典
线程安全的集合所在的命名空间 using System.Collections.Concurrent;Concurrent意思是并发的,并行的。反义是sequential(顺序的),线程安全的意思就是多线程中的同步锁(Lock)
2020-10-17 16:08:31 1421
原创 C#线程安全集合类说明(2): ConcurrentBag<T>
线程安全的集合所在的命名空间 using System.Collections.Concurrent;Concurrent意思是并发的,并行的。反义是sequential(顺序的),线程安全的意思就是多线程中的同步锁(相当于增加了lock或Interlocked)
2020-10-16 17:06:42 2617
原创 C#线程安全集合类说明(1): BlockingCollection<T>
线程安全的集合所在的命名空间 using System.Collections.Concurrent;相应的类:BlockingCollection<T>ConcurrentBag<T>ConcurrentDictionary<Tkey, TValue>ConcurrentQueue<T>ConcurrentStack<T>OrderablePartitioner<TSource>Partitioner.
2020-10-16 15:31:23 1419
原创 使用SpinWait来优化等待性能
System.Threading.SpinWait结构:为基于自旋的等待提供支持,可以比Sleep相应提升性能。以本人的博客 【使用通用接口与设备进行 串口(SerialPort)、网口(Socket)通信】为例,对发送命令并同步等待结果进行优化。原博客地址:使用通用接口与设备进行 串口(SerialPort)、网口(Socket)通信NetworkCommunication.cs的方法:发送命令并同步等待结果【SendAndWaitResult】函数。 /// <su...
2020-10-16 10:45:01 1843
原创 C#异步文件读写访问
可使用异步功能访问文件。通过使用异步功能,你可以调用异步方法而无需使用回调,也不需要跨多个方法或 lambda 表达式来拆分代码。若要使同步代码异步,只需调用异步方法而非同步方法,并向代码中添加几个关键字。可能出于以下原因向文件访问调用中添加异步:异步使 UI 应用程序响应速度更快,因为启动该操作的 UI 线程可以执行其他操作。如果 UI 线程必须执行耗时较长的代码(例如超过 50 毫秒),UI 可能会冻结,直到 I/O 完成,此时 UI 线程可以再次处理键盘和鼠标输入及其他事件。 异步可减...
2020-10-15 22:25:29 2586
原创 C# Async和Await异步任务
C#中可以使用异步方法,方法前加async关键字,可以返回void,Task,Task<TResult>.方法命名一般加上Async后缀,如WriteFileAsync在方法体中一般加上await用于耗时任务的返回值。一、测试程序如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.T
2020-10-15 14:58:29 557
原创 C#使用ManagementObjectSearcher获取本计算机CPU,硬盘,内存条等相关设备信息
C#获取本操作系统显卡,CPU,硬盘等信息
2020-10-14 23:22:16 4448
原创 关于多线程Interlocked的使用
/// <summary> /// 标识量(缓冲区中已使用的空间,初始值为0) /// </summary> private static long numberOfUsedSpace = 0; static void Main(string[] args){//线程:写入者 Thread Writer = new Thread(delegate () { ...
2020-10-12 10:52:22 1278
原创 C#规范类库的注释,生成xml类库注释提示文件
当我们创建一个dll给其他人使用时,为了方便,增加合适的注释。右键 dll类库项目,选择 属性,切换到 “生成” 选项,在“输出”分组框里面 勾选 XML文档文件,即可。生成dll后,将同时生成一个xml注释文件。使用时,当使用对应的方法编写代码时,将会自动提示代码注释功能...
2020-10-09 17:47:56 1469
SaveDefaultXmlConfigDemo.rar
2022-06-29
C#使用GDI绘制九宫格
2022-05-24
九宫格与EightDiagram的画图GDI
2022-05-16
西西弗斯黑洞【123数字黑洞】 卡普雷卡尔黑洞(重排求差黑洞):三位数黑洞495
2022-05-04
FixedDemo C# fixed
2022-04-04
使用循环【迭代】来进行转化数字为中文
2022-03-25
NumberToChineseDemo
2022-03-24
根据运算符的优先级,依次添加到堆栈中 /// 最终返回的列表不存在左右小括号,只有数字 以及 加减乘除运算符
2022-03-21
C#常见位操作 与或非 BitOperation
2022-03-05
AutoSaveTreeNodeDataDemo
2022-03-04
Base64ConsoleDemo.rar
2021-12-11
Base64EncoderDemo.rar
2021-12-10
CommonFormDesignerDemo.rar
2021-05-09
AutoGenerateFormExtern.rar
2021-05-08
AutoGenerateForm.rar
2021-04-27
BatchUnlockResFileDemo.rar
2021-04-16
TextEditorDemo.zip
2021-01-31
FibonacciSequenceDemo.rar
2020-11-10
TestServer_SuperSocket.rar
2020-10-22
线程安全集合类Concurrent测试
2020-10-17
C#教程20201015.pdf
2020-10-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人