随笔分类 -  c#基础

摘要:// 读取锁可以被多个线程读取 // 写入锁 只能被一个线程写入 一写多读 本质上也是混合锁 private static ReaderWriterLock ssReaderWriterLock =new ReaderWriterLock(); private static ReaderWriter 阅读全文
posted @ 2020-07-31 14:44 谁说程序猿很猥琐 阅读(114) 评论(0) 推荐(0)
摘要:public static class Sample2 { //互斥锁和自旋锁不同的是 互斥锁获取锁失败后,会等待,而不是重新尝试获取.因为等待所以不会消耗资源。 //线程从等待到唤醒状态到调度运行需要花费一定的时间 // Mutex 互斥锁 private static readonly Mute 阅读全文
posted @ 2020-07-31 14:00 谁说程序猿很猥琐 阅读(229) 评论(0) 推荐(0)
摘要:private static int a = 0; static void Main(string[] args) { // 原子操作 var b = 0; b = Interlocked.Increment(ref a); // 自增1 b = Interlocked.Decrement(ref 阅读全文
posted @ 2020-07-31 08:02 谁说程序猿很猥琐 阅读(461) 评论(0) 推荐(0)
摘要:using System; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Web; namespace pipeline.App_St 阅读全文
posted @ 2020-06-16 09:09 谁说程序猿很猥琐 阅读(226) 评论(0) 推荐(0)
摘要:安装完 虚拟机和centos之后,接下来安装gitlab,gitlab 安装比叫简单,可以参照以下:https://www.cnblogs.com/zhangycun/p/10963094.html 安装完成之后,修改gitlab 的访问地址 ,比如地址为 10.0.10.100:1888,默认端口 阅读全文
posted @ 2020-06-11 22:05 谁说程序猿很猥琐 阅读(163) 评论(0) 推荐(0)
摘要:1、 安装vm ,下载vm 按照教程安装即可。 2、 下载centos7 镜像, 常用地址: 阿里云:https://mirrors.aliyun.com/centos/?spm=a2c6h.13651104.0.0.13c612b21nTNWP 163: https://mirrors.163.c 阅读全文
posted @ 2020-06-11 21:48 谁说程序猿很猥琐 阅读(180) 评论(0) 推荐(0)
摘要:1、 routes.IgnoreRoute("Home/{*pathInfo}");// 忽略 Home/...的请求 2 、 area 的使用, 插件开发、许多项目协作 a、 在当前的项目创建area,创建areas文件夹,右击 添加 ‘区域’,如下结构包含controller、views、dat 阅读全文
posted @ 2020-06-09 09:19 谁说程序猿很猥琐 阅读(277) 评论(0) 推荐(0)
摘要:1 mvc 异常 一部分在applicatuon_error中处理,另一部分在HandleErrorAttribute中处理,HandleErrorAttribute‘可以处理以下异常 HandleErrorAttribute: using System; using System.Collecti 阅读全文
posted @ 2020-06-08 08:23 谁说程序猿很猥琐
摘要:using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks 阅读全文
posted @ 2020-05-21 17:46 谁说程序猿很猥琐 阅读(245) 评论(0) 推荐(0)
摘要:<system.webServer> <handlers> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <remove name="OPTIONSVerbHandler" /> <remove name="TRACEVerbHan 阅读全文
posted @ 2020-05-21 16:21 谁说程序猿很猥琐 阅读(137) 评论(0) 推荐(0)
摘要:泛型缓存比 字典 效率高好几百倍,因为是jit事先编译好的 /// <summary> /// 每个不同的T都会生成一份不同的副本 /// 适合不同类型,需要缓存一份数据的场景,效率高 /// </summary> /// <typeparam name="T"></typeparam> publi 阅读全文
posted @ 2020-05-04 14:58 谁说程序猿很猥琐 阅读(182) 评论(0) 推荐(0)
摘要:1、https://devblogs.microsoft.com/dotnet/building-c-8-0/ 2、https://www.cnblogs.com/springsnow/p/11046251.html <PropertyGroup> <LangVersion>8.0</LangVer 阅读全文
posted @ 2020-05-04 10:06 谁说程序猿很猥琐 阅读(488) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-04-29 21:54 谁说程序猿很猥琐 阅读(120) 评论(0) 推荐(0)
摘要:c# 是一个面向oop的编程语言,还是面向.Net 的编程语言 组合优于继承 2、 c# 与.net 没啥关系, 怎么证明没有关系, 1、比如 U3D,他只是以c#作为编程语言,但是与.Net 没有任何关系 VS与c# 关系 隐藏绑定关系 阅读全文
posted @ 2020-04-26 22:22 谁说程序猿很猥琐 阅读(931) 评论(0) 推荐(0)
摘要:名称 说明 Add 将两个值相加并将结果推送到计算堆栈上。 Add.Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。 Add.Ovf.Un 将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。 And 计算两个值的按位“与”并将结果推送到计算堆栈上。 Arglist 阅读全文
posted @ 2020-04-26 13:00 谁说程序猿很猥琐 阅读(203) 评论(0) 推荐(0)
摘要:回调函数: 当一个函数执行完,执行作为参数传进来的函数。 通常是通过函数指针来调用。当函数执行完,将指针地址作为参数传递给另一个函数,这个指针被用来调用所指向的函数,称之为回调函数。 委托(delegate):委托的本质就是一个回调函数帆软封装。 事件(event): 事件的本质其实是对委托的封装, 阅读全文
posted @ 2020-04-26 09:40 谁说程序猿很猥琐 阅读(497) 评论(0) 推荐(0)
摘要:using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespac 阅读全文
posted @ 2020-04-25 20:11 谁说程序猿很猥琐 阅读(557) 评论(0) 推荐(0)
摘要:1、缓存雪崩: 缓存雪崩是指,某一时刻,缓存的key都集中失效,导致所有的数据请求都直接请求数据库,这可能对于系统而言是灾难性的。所以在实际应用中,应该将缓存失效的时间尽可能的分散。还可以 队列、加锁、不过用户体验会大大降低 2、缓存穿透 是指所请求的数据在缓存中不存在,全部都要去数据库中查,比如所 阅读全文
posted @ 2020-04-25 13:56 谁说程序猿很猥琐 阅读(225) 评论(0) 推荐(0)
摘要:1 区别: a 、 moniter 继承的积累为object,sleep 继承 thread 类 b、moniter.wait(),会阻塞线程,阻塞的同时但会释放锁,再次获得锁的时候,需要monitor.Pulse唤醒 c、 thread.sleep 是当前的线程休眠,时间到后,自动恢复 继续往下执 阅读全文
posted @ 2020-04-25 12:17 谁说程序猿很猥琐 阅读(722) 评论(0) 推荐(0)
摘要:1、哈希的概念: Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输 阅读全文
posted @ 2020-04-24 20:51 谁说程序猿很猥琐 阅读(157) 评论(0) 推荐(0)