全部文章

所有博客文章按时间倒序排列

通过数组初始化位图

using System.Drawing; using System.Drawing.Imaging; using System.Runtime.InteropServices; using (var bitmap = new Bitmap(4, 2, PixelFormat.Format8bppIndexed)) { //bitmap.Palette.Entries[0] = Color.R
阅读全文 →

如何判断一个动态链接库是dotnet 生成的托管 DLL

在项目中做一个批量读取bin目录下的所有DLL动态装在到Ioc容器的功能,读取方法使用的 Assembly.LoadFrom(path); 常规情况下使用是没有问题的,但是如果程序依赖的某一个库本身还需要依赖非dotnet生成的非托管DLL,如sqlite的依赖库,使用这个方法就会报错,此为背景。 要解决这个问题最开始想到的方案是直接try catch 包围 Assembly.LoadFrom 语
阅读全文 →

redis 基础

一、数据类型:string list hash set zset string 类似于 menerycache list 链表 前后速度快,中间部分需要轮询速度慢,可 lpop rpop 缓存队列 hash 缓存对象 按对象属性分开读取 set 去重 zset 去重带排序 二、KEY过期策略 1、带TTL的KEY单独字典 2、每秒10次扫描该字典,随机选取**配置数量**个KEY删除 3、如果
阅读全文 →

dotnet 锁和线程同步

一、Monitor 以及 语法糖 lock 1、需要锁定引用类型,引用类型数据结构存在特殊的标记位,值类型每次都会被装箱成新对象 2、lock 反编译后是try finally 里面包围的 Monitor.Enter 和 Monitor.Release 二、重置事件 1、分为AutoResetEvent和ManualResetEvent 2、ManualResetEvent需要手动执行Res
阅读全文 →