摘要: ThreadPool与Task ThreadPool很难控制线程执行顺序,无法知道线程执行完成,Task弥补这些缺点。 使用CancelTokenSource通知子线程。 async task await C#异步编程模型 一个方法被标记为async,编译器会将方法的代码转换成实现了状态机的一个类型 阅读全文
posted @ 2020-07-06 11:37 胖头小C 阅读(84) 评论(0) 推荐(0) 编辑
摘要: CLR GC是一种引用跟踪算法,大致步骤如下: 1、暂停进程中所有的线程; 2、标记阶段,遍历堆中的所有对象,标记为删除,然后检查所有活动根,如果有引用对象,就标记那个对象可达,否则不可达; 3、GC压缩阶段,对堆中可达对象压缩,使占用连续的内存; GC是基于代的垃圾回收算法,对象越新,生存期越短, 阅读全文
posted @ 2020-06-27 14:33 胖头小C 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 两者都是为了释放非托管资源,如IO句柄、数据库连接等。 Finalize 基类Object定义了受保护的方法Finalize,垃圾回收器判定对象是垃圾后,会调用对象的Finalize方法(注意:重写的都会调用),定义:在类名前添加~,如~ClassName(){}; Finalize由GC隐式调用, 阅读全文
posted @ 2020-06-23 18:47 胖头小C 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 1、IEnumerable将数据从内存中读取,一次性取出数据在内存中过滤; 2、IQueryable继承自IEnumerale,采用表达式树,有延时加载机制,直接从数据库中过滤数据; 阅读全文
posted @ 2020-06-23 18:01 胖头小C 阅读(156) 评论(0) 推荐(0) 编辑